TPTP Problem File: DAT237^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT237^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Red-black trees 1025
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : rbt_impl__1025.p [Bla16]

% Status   : Theorem
% Rating   : 1.00 v7.1.0
% Syntax   : Number of formulae    :  309 ( 168 unt;  49 typ;   0 def)
%            Number of atoms       :  750 ( 332 equ;   0 cnn)
%            Maximal formula atoms :   13 (   2 avg)
%            Number of connectives : 7606 ( 131   ~;  16   |;  97   &;7082   @)
%                                         (   0 <=>; 280  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   30 (  10 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :  393 ( 393   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   46 (  45 usr;   4 con; 0-8 aty)
%            Number of variables   : 1883 (  17   ^;1758   !;  51   ?;1883   :)
%                                         (  57  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:44:57.913
%------------------------------------------------------------------------------
%----Could-be-implicit typings (9)
thf(ty_t_RBT__Impl__Mirabelle__msmaddcmtr_Ocolor,type,
    rBT_Im1923302023_color: $tType ).

thf(ty_t_RBT__Impl__Mirabelle__msmaddcmtr_Orbt,type,
    rBT_Im246033960le_rbt: $tType > $tType > $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_List_Olist,type,
    list: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_b,type,
    b: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (40)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_List_Oappend,type,
    append: 
      !>[A: $tType] : ( ( list @ A ) > ( list @ A ) > ( list @ A ) ) ).

thf(sy_c_List_Olist_OCons,type,
    cons: 
      !>[A: $tType] : ( A > ( list @ A ) > ( list @ A ) ) ).

thf(sy_c_List_Olist_ONil,type,
    nil: 
      !>[A: $tType] : ( list @ A ) ).

thf(sy_c_List_Oord_Olexordp,type,
    lexordp: 
      !>[A: $tType] : ( ( A > A > $o ) > ( list @ A ) > ( list @ A ) > $o ) ).

thf(sy_c_List_Oord_Olexordp__eq,type,
    lexordp_eq: 
      !>[A: $tType] : ( ( A > A > $o ) > ( list @ A ) > ( list @ A ) > $o ) ).

thf(sy_c_Product__Type_OPair,type,
    product_Pair: 
      !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).

thf(sy_c_Pure_Otype,type,
    type2: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Obalance,type,
    rBT_Im1648453169alance: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Obalance__right,type,
    rBT_Im1053358987_right: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Obheight,type,
    rBT_Im315265182height: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > nat ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Ocolor_OB,type,
    rBT_Impl_Mirabelle_B: rBT_Im1923302023_color ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Ocolor_OR,type,
    rBT_Impl_Mirabelle_R: rBT_Im1923302023_color ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Ocolor__of,type,
    rBT_Im1805589839lor_of: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > rBT_Im1923302023_color ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Ocombine,type,
    rBT_Im1591839508ombine: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oinv1,type,
    rBT_Im1040612427e_inv1: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > $o ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oinv1l,type,
    rBT_Im1071879905_inv1l: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > $o ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oinv2,type,
    rBT_Im1040612428e_inv2: 
      !>[A: $tType,B: $tType] : ( ( rBT_Im246033960le_rbt @ A @ B ) > $o ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Ois__rbt,type,
    rBT_Im862805236is_rbt: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( rBT_Im246033960le_rbt @ A @ B ) > $o ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__del,type,
    rBT_Im1714610413bt_del: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > A > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__del__from__left,type,
    rBT_Im1152561598m_left: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > A > ( rBT_Im246033960le_rbt @ A @ B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__del__from__right,type,
    rBT_Im1808746437_right: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > A > ( rBT_Im246033960le_rbt @ A @ B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__delete,type,
    rBT_Im452238249delete: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > A > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__greater,type,
    rBT_Im1259024060reater: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > A > ( rBT_Im246033960le_rbt @ A @ B ) > $o ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__ins,type,
    rBT_Im1756508336bt_ins: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( A > B > B > B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__insert__with__key,type,
    rBT_Im627674146th_key: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( A > B > B > B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__less,type,
    rBT_Im2075124343t_less: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > A > ( rBT_Im246033960le_rbt @ A @ B ) > $o ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__map__entry,type,
    rBT_Im2018130356_entry: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > A > ( B > B ) > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Oord_Orbt__sorted,type,
    rBT_Im759614907sorted: 
      !>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( rBT_Im246033960le_rbt @ A @ B ) > $o ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Opaint,type,
    rBT_Im945281971_paint: 
      !>[A: $tType,B: $tType] : ( rBT_Im1923302023_color > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Orbt_OBranch,type,
    rBT_Im480247531Branch: 
      !>[A: $tType,B: $tType] : ( rBT_Im1923302023_color > ( rBT_Im246033960le_rbt @ A @ B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) ) ).

thf(sy_c_RBT__Impl__Mirabelle__msmaddcmtr_Orbt_OEmpty,type,
    rBT_Im418718756_Empty: 
      !>[A: $tType,B: $tType] : ( rBT_Im246033960le_rbt @ A @ B ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Set__Interval_Oord_OgreaterThanLessThan,type,
    set_gr1161524159ssThan: 
      !>[A: $tType] : ( ( A > A > $o ) > A > A > ( set @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_f,type,
    f: b > b ).

thf(sy_v_k,type,
    k: a ).

thf(sy_v_less,type,
    less: a > a > $o ).

thf(sy_v_t,type,
    t: rBT_Im246033960le_rbt @ a @ b ).

%----Relevant facts (255)
thf(fact_0_local_Oord__eq__less__trans,axiom,
    ! [A2: a,B2: a,C: a] :
      ( ( A2 = B2 )
     => ( ( less @ B2 @ C )
       => ( less @ A2 @ C ) ) ) ).

% local.ord_eq_less_trans
thf(fact_1_local_Oord__less__eq__trans,axiom,
    ! [A2: a,B2: a,C: a] :
      ( ( less @ A2 @ B2 )
     => ( ( B2 = C )
       => ( less @ A2 @ C ) ) ) ).

% local.ord_less_eq_trans
thf(fact_2_local_Ois__rbt__rbt__sorted,axiom,
    ! [B: $tType,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im862805236is_rbt @ a @ B @ less @ T )
     => ( rBT_Im759614907sorted @ a @ B @ less @ T ) ) ).

% local.is_rbt_rbt_sorted
thf(fact_3_rbt__map__entry__color__of,axiom,
    ! [B: $tType,K: a,F: B > B,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1805589839lor_of @ a @ B @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ T ) )
      = ( rBT_Im1805589839lor_of @ a @ B @ T ) ) ).

% rbt_map_entry_color_of
thf(fact_4_local_Opaint__rbt__sorted,axiom,
    ! [B: $tType,T: rBT_Im246033960le_rbt @ a @ B,C: rBT_Im1923302023_color] :
      ( ( rBT_Im759614907sorted @ a @ B @ less @ T )
     => ( rBT_Im759614907sorted @ a @ B @ less @ ( rBT_Im945281971_paint @ a @ B @ C @ T ) ) ) ).

% local.paint_rbt_sorted
thf(fact_5_rbt__map__entry__rbt__greater,axiom,
    ! [B: $tType,A2: a,K: a,F: B > B,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1259024060reater @ a @ B @ less @ A2 @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ T ) )
      = ( rBT_Im1259024060reater @ a @ B @ less @ A2 @ T ) ) ).

% rbt_map_entry_rbt_greater
thf(fact_6_rbt__map__entry__rbt__less,axiom,
    ! [B: $tType,A2: a,K: a,F: B > B,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im2075124343t_less @ a @ B @ less @ A2 @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ T ) )
      = ( rBT_Im2075124343t_less @ a @ B @ less @ A2 @ T ) ) ).

% rbt_map_entry_rbt_less
thf(fact_7_rbt__map__entry__inv1,axiom,
    ! [B: $tType,K: a,F: B > B,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1040612427e_inv1 @ a @ B @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ T ) )
      = ( rBT_Im1040612427e_inv1 @ a @ B @ T ) ) ).

% rbt_map_entry_inv1
thf(fact_8_rbt__map__entry__inv2_I2_J,axiom,
    ! [B: $tType,K: a,F: B > B,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im315265182height @ a @ B @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ T ) )
      = ( rBT_Im315265182height @ a @ B @ T ) ) ).

% rbt_map_entry_inv2(2)
thf(fact_9_rbt__map__entry__inv2_I1_J,axiom,
    ! [B: $tType,K: a,F: B > B,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1040612428e_inv2 @ a @ B @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ T ) )
      = ( rBT_Im1040612428e_inv2 @ a @ B @ T ) ) ).

% rbt_map_entry_inv2(1)
thf(fact_10_local_Orbt__sorted_Osimps_I1_J,axiom,
    ! [B: $tType] : ( rBT_Im759614907sorted @ a @ B @ less @ ( rBT_Im418718756_Empty @ a @ B ) ) ).

% local.rbt_sorted.simps(1)
thf(fact_11_rbt__map__entry_Osimps_I1_J,axiom,
    ! [B: $tType,K: a,F: B > B] :
      ( ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ ( rBT_Im418718756_Empty @ a @ B ) )
      = ( rBT_Im418718756_Empty @ a @ B ) ) ).

% rbt_map_entry.simps(1)
thf(fact_12_rbt__map__entry_Osimps_I2_J,axiom,
    ! [B: $tType,K: a,X: a,F: B > B,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ a @ B,V: B,Rt: rBT_Im246033960le_rbt @ a @ B] :
      ( ( ( less @ K @ X )
       => ( ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ ( rBT_Im480247531Branch @ a @ B @ C @ Lt @ X @ V @ Rt ) )
          = ( rBT_Im480247531Branch @ a @ B @ C @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ Lt ) @ X @ V @ Rt ) ) )
      & ( ~ ( less @ K @ X )
       => ( ( ( less @ X @ K )
           => ( ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ ( rBT_Im480247531Branch @ a @ B @ C @ Lt @ X @ V @ Rt ) )
              = ( rBT_Im480247531Branch @ a @ B @ C @ Lt @ X @ V @ ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ Rt ) ) ) )
          & ( ~ ( less @ X @ K )
           => ( ( rBT_Im2018130356_entry @ a @ B @ less @ K @ F @ ( rBT_Im480247531Branch @ a @ B @ C @ Lt @ X @ V @ Rt ) )
              = ( rBT_Im480247531Branch @ a @ B @ C @ Lt @ X @ ( F @ V ) @ Rt ) ) ) ) ) ) ).

% rbt_map_entry.simps(2)
thf(fact_13_local_Olexordp__eq__refl,axiom,
    ! [Xs: list @ a] : ( lexordp_eq @ a @ less @ Xs @ Xs ) ).

% local.lexordp_eq_refl
thf(fact_14_local_OgreaterThanLessThan__iff,axiom,
    ! [I: a,L: a,U: a] :
      ( ( member @ a @ I @ ( set_gr1161524159ssThan @ a @ less @ L @ U ) )
      = ( ( less @ L @ I )
        & ( less @ I @ U ) ) ) ).

% local.greaterThanLessThan_iff
thf(fact_15_local_OEmpty__is__rbt,axiom,
    ! [B: $tType] : ( rBT_Im862805236is_rbt @ a @ B @ less @ ( rBT_Im418718756_Empty @ a @ B ) ) ).

% local.Empty_is_rbt
thf(fact_16_rbt_Oinject,axiom,
    ! [B: $tType,A: $tType,X21: rBT_Im1923302023_color,X22: rBT_Im246033960le_rbt @ A @ B,X23: A,X24: B,X25: rBT_Im246033960le_rbt @ A @ B,Y21: rBT_Im1923302023_color,Y22: rBT_Im246033960le_rbt @ A @ B,Y23: A,Y24: B,Y25: rBT_Im246033960le_rbt @ A @ B] :
      ( ( ( rBT_Im480247531Branch @ A @ B @ X21 @ X22 @ X23 @ X24 @ X25 )
        = ( rBT_Im480247531Branch @ A @ B @ Y21 @ Y22 @ Y23 @ Y24 @ Y25 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 )
        & ( X23 = Y23 )
        & ( X24 = Y24 )
        & ( X25 = Y25 ) ) ) ).

% rbt.inject
thf(fact_17_local_Orbt__sorted_Osimps_I2_J,axiom,
    ! [B: $tType,C: rBT_Im1923302023_color,L: rBT_Im246033960le_rbt @ a @ B,K: a,V: B,R: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im759614907sorted @ a @ B @ less @ ( rBT_Im480247531Branch @ a @ B @ C @ L @ K @ V @ R ) )
      = ( ( rBT_Im2075124343t_less @ a @ B @ less @ K @ L )
        & ( rBT_Im1259024060reater @ a @ B @ less @ K @ R )
        & ( rBT_Im759614907sorted @ a @ B @ less @ L )
        & ( rBT_Im759614907sorted @ a @ B @ less @ R ) ) ) ).

% local.rbt_sorted.simps(2)
thf(fact_18_local_Orbt__less__simps_I2_J,axiom,
    ! [C2: $tType,K: a,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ a @ C2,Kt: a,V: C2,Rt: rBT_Im246033960le_rbt @ a @ C2] :
      ( ( rBT_Im2075124343t_less @ a @ C2 @ less @ K @ ( rBT_Im480247531Branch @ a @ C2 @ C @ Lt @ Kt @ V @ Rt ) )
      = ( ( less @ Kt @ K )
        & ( rBT_Im2075124343t_less @ a @ C2 @ less @ K @ Lt )
        & ( rBT_Im2075124343t_less @ a @ C2 @ less @ K @ Rt ) ) ) ).

% local.rbt_less_simps(2)
thf(fact_19_local_Orbt__greater__simps_I2_J,axiom,
    ! [C2: $tType,K: a,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ a @ C2,Kt: a,V: C2,Rt: rBT_Im246033960le_rbt @ a @ C2] :
      ( ( rBT_Im1259024060reater @ a @ C2 @ less @ K @ ( rBT_Im480247531Branch @ a @ C2 @ C @ Lt @ Kt @ V @ Rt ) )
      = ( ( less @ K @ Kt )
        & ( rBT_Im1259024060reater @ a @ C2 @ less @ K @ Lt )
        & ( rBT_Im1259024060reater @ a @ C2 @ less @ K @ Rt ) ) ) ).

% local.rbt_greater_simps(2)
thf(fact_20_local_Orbt__less__simps_I1_J,axiom,
    ! [B: $tType,K: a] : ( rBT_Im2075124343t_less @ a @ B @ less @ K @ ( rBT_Im418718756_Empty @ a @ B ) ) ).

% local.rbt_less_simps(1)
thf(fact_21_local_Orbt__greater__simps_I1_J,axiom,
    ! [B: $tType,K: a] : ( rBT_Im1259024060reater @ a @ B @ less @ K @ ( rBT_Im418718756_Empty @ a @ B ) ) ).

% local.rbt_greater_simps(1)
thf(fact_22_local_Opaint__rbt__less,axiom,
    ! [B: $tType,V: a,C: rBT_Im1923302023_color,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im2075124343t_less @ a @ B @ less @ V @ ( rBT_Im945281971_paint @ a @ B @ C @ T ) )
      = ( rBT_Im2075124343t_less @ a @ B @ less @ V @ T ) ) ).

% local.paint_rbt_less
thf(fact_23_local_Opaint__rbt__greater,axiom,
    ! [B: $tType,V: a,C: rBT_Im1923302023_color,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1259024060reater @ a @ B @ less @ V @ ( rBT_Im945281971_paint @ a @ B @ C @ T ) )
      = ( rBT_Im1259024060reater @ a @ B @ less @ V @ T ) ) ).

% local.paint_rbt_greater
thf(fact_24_inv1_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType] : ( rBT_Im1040612427e_inv1 @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) ) ).

% inv1.simps(1)
thf(fact_25_inv2_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ A @ B,K: A,V: B,Rt: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1040612428e_inv2 @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ C @ Lt @ K @ V @ Rt ) )
      = ( ( rBT_Im1040612428e_inv2 @ A @ B @ Lt )
        & ( rBT_Im1040612428e_inv2 @ A @ B @ Rt )
        & ( ( rBT_Im315265182height @ A @ B @ Lt )
          = ( rBT_Im315265182height @ A @ B @ Rt ) ) ) ) ).

% inv2.simps(2)
thf(fact_26_inv2_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType] : ( rBT_Im1040612428e_inv2 @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) ) ).

% inv2.simps(1)
thf(fact_27_paint_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,C: rBT_Im1923302023_color,Uu: rBT_Im1923302023_color,L: rBT_Im246033960le_rbt @ A @ B,K: A,V: B,R: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im945281971_paint @ A @ B @ C @ ( rBT_Im480247531Branch @ A @ B @ Uu @ L @ K @ V @ R ) )
      = ( rBT_Im480247531Branch @ A @ B @ C @ L @ K @ V @ R ) ) ).

% paint.simps(2)
thf(fact_28_paint_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,C: rBT_Im1923302023_color] :
      ( ( rBT_Im945281971_paint @ A @ B @ C @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% paint.simps(1)
thf(fact_29_rbt_Odistinct_I1_J,axiom,
    ! [B: $tType,A: $tType,X21: rBT_Im1923302023_color,X22: rBT_Im246033960le_rbt @ A @ B,X23: A,X24: B,X25: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im418718756_Empty @ A @ B )
     != ( rBT_Im480247531Branch @ A @ B @ X21 @ X22 @ X23 @ X24 @ X25 ) ) ).

% rbt.distinct(1)
thf(fact_30_color__of_Osimps_I2_J,axiom,
    ! [A: $tType,B: $tType,C: rBT_Im1923302023_color,Uu: rBT_Im246033960le_rbt @ A @ B,Uv: A,Uw: B,Ux: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1805589839lor_of @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ C @ Uu @ Uv @ Uw @ Ux ) )
      = C ) ).

% color_of.simps(2)
thf(fact_31_ord_Orbt__less__simps_I2_J,axiom,
    ! [C2: $tType,A: $tType,Less: A > A > $o,K: A,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ A @ C2,Kt: A,V: C2,Rt: rBT_Im246033960le_rbt @ A @ C2] :
      ( ( rBT_Im2075124343t_less @ A @ C2 @ Less @ K @ ( rBT_Im480247531Branch @ A @ C2 @ C @ Lt @ Kt @ V @ Rt ) )
      = ( ( Less @ Kt @ K )
        & ( rBT_Im2075124343t_less @ A @ C2 @ Less @ K @ Lt )
        & ( rBT_Im2075124343t_less @ A @ C2 @ Less @ K @ Rt ) ) ) ).

% ord.rbt_less_simps(2)
thf(fact_32_ord_Orbt__less__simps_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A] : ( rBT_Im2075124343t_less @ A @ B @ Less @ K @ ( rBT_Im418718756_Empty @ A @ B ) ) ).

% ord.rbt_less_simps(1)
thf(fact_33_ord_Orbt__greater__simps_I2_J,axiom,
    ! [C2: $tType,A: $tType,Less: A > A > $o,K: A,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ A @ C2,Kt: A,V: C2,Rt: rBT_Im246033960le_rbt @ A @ C2] :
      ( ( rBT_Im1259024060reater @ A @ C2 @ Less @ K @ ( rBT_Im480247531Branch @ A @ C2 @ C @ Lt @ Kt @ V @ Rt ) )
      = ( ( Less @ K @ Kt )
        & ( rBT_Im1259024060reater @ A @ C2 @ Less @ K @ Lt )
        & ( rBT_Im1259024060reater @ A @ C2 @ Less @ K @ Rt ) ) ) ).

% ord.rbt_greater_simps(2)
thf(fact_34_ord_Orbt__greater__simps_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A] : ( rBT_Im1259024060reater @ A @ B @ Less @ K @ ( rBT_Im418718756_Empty @ A @ B ) ) ).

% ord.rbt_greater_simps(1)
thf(fact_35_paint__inv2,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B,C: rBT_Im1923302023_color] :
      ( ( rBT_Im1040612428e_inv2 @ A @ B @ T )
     => ( rBT_Im1040612428e_inv2 @ A @ B @ ( rBT_Im945281971_paint @ A @ B @ C @ T ) ) ) ).

% paint_inv2
thf(fact_36_rbt_Oinduct,axiom,
    ! [B: $tType,A: $tType,P: ( rBT_Im246033960le_rbt @ A @ B ) > $o,Rbt: rBT_Im246033960le_rbt @ A @ B] :
      ( ( P @ ( rBT_Im418718756_Empty @ A @ B ) )
     => ( ! [X1: rBT_Im1923302023_color,X2: rBT_Im246033960le_rbt @ A @ B,X3: A,X4: B,X5: rBT_Im246033960le_rbt @ A @ B] :
            ( ( P @ X2 )
           => ( ( P @ X5 )
             => ( P @ ( rBT_Im480247531Branch @ A @ B @ X1 @ X2 @ X3 @ X4 @ X5 ) ) ) )
       => ( P @ Rbt ) ) ) ).

% rbt.induct
thf(fact_37_rbt_Oexhaust,axiom,
    ! [B: $tType,A: $tType,Y: rBT_Im246033960le_rbt @ A @ B] :
      ( ( Y
       != ( rBT_Im418718756_Empty @ A @ B ) )
     => ~ ! [X212: rBT_Im1923302023_color,X222: rBT_Im246033960le_rbt @ A @ B,X232: A,X242: B,X252: rBT_Im246033960le_rbt @ A @ B] :
            ( Y
           != ( rBT_Im480247531Branch @ A @ B @ X212 @ X222 @ X232 @ X242 @ X252 ) ) ) ).

% rbt.exhaust
thf(fact_38_ord_OEmpty__is__rbt,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o] : ( rBT_Im862805236is_rbt @ A @ B @ Less @ ( rBT_Im418718756_Empty @ A @ B ) ) ).

% ord.Empty_is_rbt
thf(fact_39_ord_Opaint__rbt__less,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,V: A,C: rBT_Im1923302023_color,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im2075124343t_less @ A @ B @ Less @ V @ ( rBT_Im945281971_paint @ A @ B @ C @ T ) )
      = ( rBT_Im2075124343t_less @ A @ B @ Less @ V @ T ) ) ).

% ord.paint_rbt_less
thf(fact_40_ord_Opaint__rbt__greater,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,V: A,C: rBT_Im1923302023_color,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1259024060reater @ A @ B @ Less @ V @ ( rBT_Im945281971_paint @ A @ B @ C @ T ) )
      = ( rBT_Im1259024060reater @ A @ B @ Less @ V @ T ) ) ).

% ord.paint_rbt_greater
thf(fact_41_ord_Orbt__sorted_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,C: rBT_Im1923302023_color,L: rBT_Im246033960le_rbt @ A @ B,K: A,V: B,R: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im759614907sorted @ A @ B @ Less @ ( rBT_Im480247531Branch @ A @ B @ C @ L @ K @ V @ R ) )
      = ( ( rBT_Im2075124343t_less @ A @ B @ Less @ K @ L )
        & ( rBT_Im1259024060reater @ A @ B @ Less @ K @ R )
        & ( rBT_Im759614907sorted @ A @ B @ Less @ L )
        & ( rBT_Im759614907sorted @ A @ B @ Less @ R ) ) ) ).

% ord.rbt_sorted.simps(2)
thf(fact_42_ord_Orbt__map__entry_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,X: A,F: B > B,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ A @ B,V: B,Rt: rBT_Im246033960le_rbt @ A @ B] :
      ( ( ( Less @ K @ X )
       => ( ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ ( rBT_Im480247531Branch @ A @ B @ C @ Lt @ X @ V @ Rt ) )
          = ( rBT_Im480247531Branch @ A @ B @ C @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ Lt ) @ X @ V @ Rt ) ) )
      & ( ~ ( Less @ K @ X )
       => ( ( ( Less @ X @ K )
           => ( ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ ( rBT_Im480247531Branch @ A @ B @ C @ Lt @ X @ V @ Rt ) )
              = ( rBT_Im480247531Branch @ A @ B @ C @ Lt @ X @ V @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ Rt ) ) ) )
          & ( ~ ( Less @ X @ K )
           => ( ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ ( rBT_Im480247531Branch @ A @ B @ C @ Lt @ X @ V @ Rt ) )
              = ( rBT_Im480247531Branch @ A @ B @ C @ Lt @ X @ ( F @ V ) @ Rt ) ) ) ) ) ) ).

% ord.rbt_map_entry.simps(2)
thf(fact_43_ord_Orbt__map__entry_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,F: B > B] :
      ( ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% ord.rbt_map_entry.simps(1)
thf(fact_44_ord_Orbt__sorted_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o] : ( rBT_Im759614907sorted @ A @ B @ Less @ ( rBT_Im418718756_Empty @ A @ B ) ) ).

% ord.rbt_sorted.simps(1)
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( collect @ A
        @ ^ [X6: A] : ( member @ A @ X6 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X7: A] :
          ( ( P @ X7 )
          = ( Q @ X7 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ord_Orbt__map__entry__inv2_I2_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,F: B > B,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im315265182height @ A @ B @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ T ) )
      = ( rBT_Im315265182height @ A @ B @ T ) ) ).

% ord.rbt_map_entry_inv2(2)
thf(fact_49_ord_Orbt__map__entry__inv2_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,F: B > B,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1040612428e_inv2 @ A @ B @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ T ) )
      = ( rBT_Im1040612428e_inv2 @ A @ B @ T ) ) ).

% ord.rbt_map_entry_inv2(1)
thf(fact_50_ord_Orbt__map__entry__inv1,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,F: B > B,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ T ) )
      = ( rBT_Im1040612427e_inv1 @ A @ B @ T ) ) ).

% ord.rbt_map_entry_inv1
thf(fact_51_ord_Opaint__rbt__sorted,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,T: rBT_Im246033960le_rbt @ A @ B,C: rBT_Im1923302023_color] :
      ( ( rBT_Im759614907sorted @ A @ B @ Less @ T )
     => ( rBT_Im759614907sorted @ A @ B @ Less @ ( rBT_Im945281971_paint @ A @ B @ C @ T ) ) ) ).

% ord.paint_rbt_sorted
thf(fact_52_ord_Orbt__map__entry__color__of,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,F: B > B,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1805589839lor_of @ A @ B @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ T ) )
      = ( rBT_Im1805589839lor_of @ A @ B @ T ) ) ).

% ord.rbt_map_entry_color_of
thf(fact_53_ord_Orbt__map__entry__rbt__greater,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,A2: A,K: A,F: B > B,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1259024060reater @ A @ B @ Less @ A2 @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ T ) )
      = ( rBT_Im1259024060reater @ A @ B @ Less @ A2 @ T ) ) ).

% ord.rbt_map_entry_rbt_greater
thf(fact_54_ord_Orbt__map__entry__rbt__less,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,A2: A,K: A,F: B > B,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im2075124343t_less @ A @ B @ Less @ A2 @ ( rBT_Im2018130356_entry @ A @ B @ Less @ K @ F @ T ) )
      = ( rBT_Im2075124343t_less @ A @ B @ Less @ A2 @ T ) ) ).

% ord.rbt_map_entry_rbt_less
thf(fact_55_ord_Ois__rbt__rbt__sorted,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im862805236is_rbt @ A @ B @ Less @ T )
     => ( rBT_Im759614907sorted @ A @ B @ Less @ T ) ) ).

% ord.is_rbt_rbt_sorted
thf(fact_56_local_Oins__inv1__inv2_I2_J,axiom,
    ! [B: $tType,T: rBT_Im246033960le_rbt @ a @ B,F: a > B > B > B,K: a,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ a @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ a @ B @ T )
       => ( ( rBT_Im315265182height @ a @ B @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ X @ T ) )
          = ( rBT_Im315265182height @ a @ B @ T ) ) ) ) ).

% local.ins_inv1_inv2(2)
thf(fact_57_local_Ois__rbt__def,axiom,
    ! [B: $tType,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im862805236is_rbt @ a @ B @ less @ T )
      = ( ( rBT_Im1040612427e_inv1 @ a @ B @ T )
        & ( rBT_Im1040612428e_inv2 @ a @ B @ T )
        & ( ( rBT_Im1805589839lor_of @ a @ B @ T )
          = rBT_Impl_Mirabelle_B )
        & ( rBT_Im759614907sorted @ a @ B @ less @ T ) ) ) ).

% local.is_rbt_def
thf(fact_58_local_Oins__inv1__inv2_I1_J,axiom,
    ! [B: $tType,T: rBT_Im246033960le_rbt @ a @ B,F: a > B > B > B,K: a,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ a @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ a @ B @ T )
       => ( rBT_Im1040612428e_inv2 @ a @ B @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ X @ T ) ) ) ) ).

% local.ins_inv1_inv2(1)
thf(fact_59_local_Orbt__del_Osimps_I1_J,axiom,
    ! [B: $tType,X: a] :
      ( ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im418718756_Empty @ a @ B ) )
      = ( rBT_Im418718756_Empty @ a @ B ) ) ).

% local.rbt_del.simps(1)
thf(fact_60_local_Olexordp__eq_ONil,axiom,
    ! [Ys: list @ a] : ( lexordp_eq @ a @ less @ ( nil @ a ) @ Ys ) ).

% local.lexordp_eq.Nil
thf(fact_61_local_Olexordp__into__lexordp__eq,axiom,
    ! [Xs: list @ a,Ys: list @ a] :
      ( ( lexordp @ a @ less @ Xs @ Ys )
     => ( lexordp_eq @ a @ less @ Xs @ Ys ) ) ).

% local.lexordp_into_lexordp_eq
thf(fact_62_local_Olexordp__eq_OCons__eq,axiom,
    ! [X: a,Y: a,Xs: list @ a,Ys: list @ a] :
      ( ~ ( less @ X @ Y )
     => ( ~ ( less @ Y @ X )
       => ( ( lexordp_eq @ a @ less @ Xs @ Ys )
         => ( lexordp_eq @ a @ less @ ( cons @ a @ X @ Xs ) @ ( cons @ a @ Y @ Ys ) ) ) ) ) ).

% local.lexordp_eq.Cons_eq
thf(fact_63_local_Olexordp__eq_OCons,axiom,
    ! [X: a,Y: a,Xs: list @ a,Ys: list @ a] :
      ( ( less @ X @ Y )
     => ( lexordp_eq @ a @ less @ ( cons @ a @ X @ Xs ) @ ( cons @ a @ Y @ Ys ) ) ) ).

% local.lexordp_eq.Cons
thf(fact_64_local_Orbt__del_Ocases,axiom,
    ! [B: $tType,X: product_prod @ a @ ( rBT_Im246033960le_rbt @ a @ B )] :
      ( ! [X7: a] :
          ( X
         != ( product_Pair @ a @ ( rBT_Im246033960le_rbt @ a @ B ) @ X7 @ ( rBT_Im418718756_Empty @ a @ B ) ) )
     => ~ ! [X7: a,C3: rBT_Im1923302023_color,A4: rBT_Im246033960le_rbt @ a @ B,Y2: a,S: B,B3: rBT_Im246033960le_rbt @ a @ B] :
            ( X
           != ( product_Pair @ a @ ( rBT_Im246033960le_rbt @ a @ B ) @ X7 @ ( rBT_Im480247531Branch @ a @ B @ C3 @ A4 @ Y2 @ S @ B3 ) ) ) ) ).

% local.rbt_del.cases
thf(fact_65_ord_Ois__rbt__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( rBT_Im862805236is_rbt @ A @ B )
      = ( ^ [Less2: A > A > $o,T2: rBT_Im246033960le_rbt @ A @ B] :
            ( ( rBT_Im1040612427e_inv1 @ A @ B @ T2 )
            & ( rBT_Im1040612428e_inv2 @ A @ B @ T2 )
            & ( ( rBT_Im1805589839lor_of @ A @ B @ T2 )
              = rBT_Impl_Mirabelle_B )
            & ( rBT_Im759614907sorted @ A @ B @ Less2 @ T2 ) ) ) ) ).

% ord.is_rbt_def
thf(fact_66_local_Olexordp__irreflexive,axiom,
    ! [Xs: list @ a] :
      ( ! [X7: a] :
          ~ ( less @ X7 @ X7 )
     => ~ ( lexordp @ a @ less @ Xs @ Xs ) ) ).

% local.lexordp_irreflexive
thf(fact_67_local_Olexordp_OCons,axiom,
    ! [X: a,Y: a,Xs: list @ a,Ys: list @ a] :
      ( ( less @ X @ Y )
     => ( lexordp @ a @ less @ ( cons @ a @ X @ Xs ) @ ( cons @ a @ Y @ Ys ) ) ) ).

% local.lexordp.Cons
thf(fact_68_local_Olexordp_OCons__eq,axiom,
    ! [X: a,Y: a,Xs: list @ a,Ys: list @ a] :
      ( ~ ( less @ X @ Y )
     => ( ~ ( less @ Y @ X )
       => ( ( lexordp @ a @ less @ Xs @ Ys )
         => ( lexordp @ a @ less @ ( cons @ a @ X @ Xs ) @ ( cons @ a @ Y @ Ys ) ) ) ) ) ).

% local.lexordp.Cons_eq
thf(fact_69_local_Olexordp_ONil,axiom,
    ! [Y: a,Ys: list @ a] : ( lexordp @ a @ less @ ( nil @ a ) @ ( cons @ a @ Y @ Ys ) ) ).

% local.lexordp.Nil
thf(fact_70_local_Olexordp_Ocases,axiom,
    ! [A1: list @ a,A22: list @ a] :
      ( ( lexordp @ a @ less @ A1 @ A22 )
     => ( ( ( A1
            = ( nil @ a ) )
         => ! [Y2: a,Ys2: list @ a] :
              ( A22
             != ( cons @ a @ Y2 @ Ys2 ) ) )
       => ( ! [X7: a] :
              ( ? [Xs2: list @ a] :
                  ( A1
                  = ( cons @ a @ X7 @ Xs2 ) )
             => ! [Y2: a] :
                  ( ? [Ys2: list @ a] :
                      ( A22
                      = ( cons @ a @ Y2 @ Ys2 ) )
                 => ~ ( less @ X7 @ Y2 ) ) )
         => ~ ! [X7: a,Y2: a,Xs2: list @ a] :
                ( ( A1
                  = ( cons @ a @ X7 @ Xs2 ) )
               => ! [Ys2: list @ a] :
                    ( ( A22
                      = ( cons @ a @ Y2 @ Ys2 ) )
                   => ( ~ ( less @ X7 @ Y2 )
                     => ( ~ ( less @ Y2 @ X7 )
                       => ~ ( lexordp @ a @ less @ Xs2 @ Ys2 ) ) ) ) ) ) ) ) ).

% local.lexordp.cases
thf(fact_71_local_Olexordp_Oinducts,axiom,
    ! [X12: list @ a,X26: list @ a,P: ( list @ a ) > ( list @ a ) > $o] :
      ( ( lexordp @ a @ less @ X12 @ X26 )
     => ( ! [Y2: a,Ys2: list @ a] : ( P @ ( nil @ a ) @ ( cons @ a @ Y2 @ Ys2 ) )
       => ( ! [X7: a,Y2: a,Xs2: list @ a,Ys2: list @ a] :
              ( ( less @ X7 @ Y2 )
             => ( P @ ( cons @ a @ X7 @ Xs2 ) @ ( cons @ a @ Y2 @ Ys2 ) ) )
         => ( ! [X7: a,Y2: a,Xs2: list @ a,Ys2: list @ a] :
                ( ~ ( less @ X7 @ Y2 )
               => ( ~ ( less @ Y2 @ X7 )
                 => ( ( lexordp @ a @ less @ Xs2 @ Ys2 )
                   => ( ( P @ Xs2 @ Ys2 )
                     => ( P @ ( cons @ a @ X7 @ Xs2 ) @ ( cons @ a @ Y2 @ Ys2 ) ) ) ) ) )
           => ( P @ X12 @ X26 ) ) ) ) ) ).

% local.lexordp.inducts
thf(fact_72_local_Olexordp_Osimps,axiom,
    ! [A1: list @ a,A22: list @ a] :
      ( ( lexordp @ a @ less @ A1 @ A22 )
      = ( ? [Y3: a,Ys3: list @ a] :
            ( ( A1
              = ( nil @ a ) )
            & ( A22
              = ( cons @ a @ Y3 @ Ys3 ) ) )
        | ? [X6: a,Y3: a,Xs3: list @ a,Ys3: list @ a] :
            ( ( A1
              = ( cons @ a @ X6 @ Xs3 ) )
            & ( A22
              = ( cons @ a @ Y3 @ Ys3 ) )
            & ( less @ X6 @ Y3 ) )
        | ? [X6: a,Y3: a,Xs3: list @ a,Ys3: list @ a] :
            ( ( A1
              = ( cons @ a @ X6 @ Xs3 ) )
            & ( A22
              = ( cons @ a @ Y3 @ Ys3 ) )
            & ~ ( less @ X6 @ Y3 )
            & ~ ( less @ Y3 @ X6 )
            & ( lexordp @ a @ less @ Xs3 @ Ys3 ) ) ) ) ).

% local.lexordp.simps
thf(fact_73_local_Olexordp__eq_Ocases,axiom,
    ! [A1: list @ a,A22: list @ a] :
      ( ( lexordp_eq @ a @ less @ A1 @ A22 )
     => ( ( ( A1
            = ( nil @ a ) )
         => ! [Ys2: list @ a] : A22 != Ys2 )
       => ( ! [X7: a] :
              ( ? [Xs2: list @ a] :
                  ( A1
                  = ( cons @ a @ X7 @ Xs2 ) )
             => ! [Y2: a] :
                  ( ? [Ys2: list @ a] :
                      ( A22
                      = ( cons @ a @ Y2 @ Ys2 ) )
                 => ~ ( less @ X7 @ Y2 ) ) )
         => ~ ! [X7: a,Y2: a,Xs2: list @ a] :
                ( ( A1
                  = ( cons @ a @ X7 @ Xs2 ) )
               => ! [Ys2: list @ a] :
                    ( ( A22
                      = ( cons @ a @ Y2 @ Ys2 ) )
                   => ( ~ ( less @ X7 @ Y2 )
                     => ( ~ ( less @ Y2 @ X7 )
                       => ~ ( lexordp_eq @ a @ less @ Xs2 @ Ys2 ) ) ) ) ) ) ) ) ).

% local.lexordp_eq.cases
thf(fact_74_local_Olexordp__eq_Oinducts,axiom,
    ! [X12: list @ a,X26: list @ a,P: ( list @ a ) > ( list @ a ) > $o] :
      ( ( lexordp_eq @ a @ less @ X12 @ X26 )
     => ( ! [X1: list @ a] : ( P @ ( nil @ a ) @ X1 )
       => ( ! [X7: a,Y2: a,Xs2: list @ a,Ys2: list @ a] :
              ( ( less @ X7 @ Y2 )
             => ( P @ ( cons @ a @ X7 @ Xs2 ) @ ( cons @ a @ Y2 @ Ys2 ) ) )
         => ( ! [X7: a,Y2: a,Xs2: list @ a,Ys2: list @ a] :
                ( ~ ( less @ X7 @ Y2 )
               => ( ~ ( less @ Y2 @ X7 )
                 => ( ( lexordp_eq @ a @ less @ Xs2 @ Ys2 )
                   => ( ( P @ Xs2 @ Ys2 )
                     => ( P @ ( cons @ a @ X7 @ Xs2 ) @ ( cons @ a @ Y2 @ Ys2 ) ) ) ) ) )
           => ( P @ X12 @ X26 ) ) ) ) ) ).

% local.lexordp_eq.inducts
thf(fact_75_local_Olexordp__eq_Osimps,axiom,
    ! [A1: list @ a,A22: list @ a] :
      ( ( lexordp_eq @ a @ less @ A1 @ A22 )
      = ( ? [Ys3: list @ a] :
            ( ( A1
              = ( nil @ a ) )
            & ( A22 = Ys3 ) )
        | ? [X6: a,Y3: a,Xs3: list @ a,Ys3: list @ a] :
            ( ( A1
              = ( cons @ a @ X6 @ Xs3 ) )
            & ( A22
              = ( cons @ a @ Y3 @ Ys3 ) )
            & ( less @ X6 @ Y3 ) )
        | ? [X6: a,Y3: a,Xs3: list @ a,Ys3: list @ a] :
            ( ( A1
              = ( cons @ a @ X6 @ Xs3 ) )
            & ( A22
              = ( cons @ a @ Y3 @ Ys3 ) )
            & ~ ( less @ X6 @ Y3 )
            & ~ ( less @ Y3 @ X6 )
            & ( lexordp_eq @ a @ less @ Xs3 @ Ys3 ) ) ) ) ).

% local.lexordp_eq.simps
thf(fact_76_local_Oins__inv1__inv2_I3_J,axiom,
    ! [B: $tType,T: rBT_Im246033960le_rbt @ a @ B,F: a > B > B > B,K: a,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ a @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ a @ B @ T )
       => ( ( ( rBT_Im1805589839lor_of @ a @ B @ T )
            = rBT_Impl_Mirabelle_B )
         => ( rBT_Im1040612427e_inv1 @ a @ B @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ X @ T ) ) ) ) ) ).

% local.ins_inv1_inv2(3)
thf(fact_77_local_Orbt__delete__def,axiom,
    ! [B: $tType,K: a,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im452238249delete @ a @ B @ less @ K @ T )
      = ( rBT_Im945281971_paint @ a @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im1714610413bt_del @ a @ B @ less @ K @ T ) ) ) ).

% local.rbt_delete_def
thf(fact_78_paint__color__of,axiom,
    ! [A: $tType,B: $tType,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1805589839lor_of @ A @ B @ ( rBT_Im945281971_paint @ A @ B @ rBT_Impl_Mirabelle_B @ T ) )
      = rBT_Impl_Mirabelle_B ) ).

% paint_color_of
thf(fact_79_local_Olexordp__simps_I3_J,axiom,
    ! [X: a,Xs: list @ a,Y: a,Ys: list @ a] :
      ( ( lexordp @ a @ less @ ( cons @ a @ X @ Xs ) @ ( cons @ a @ Y @ Ys ) )
      = ( ( less @ X @ Y )
        | ( ~ ( less @ Y @ X )
          & ( lexordp @ a @ less @ Xs @ Ys ) ) ) ) ).

% local.lexordp_simps(3)
thf(fact_80_local_Olexordp__eq__simps_I4_J,axiom,
    ! [X: a,Xs: list @ a,Y: a,Ys: list @ a] :
      ( ( lexordp_eq @ a @ less @ ( cons @ a @ X @ Xs ) @ ( cons @ a @ Y @ Ys ) )
      = ( ( less @ X @ Y )
        | ( ~ ( less @ Y @ X )
          & ( lexordp_eq @ a @ less @ Xs @ Ys ) ) ) ) ).

% local.lexordp_eq_simps(4)
thf(fact_81_local_Olexordp__simps_I2_J,axiom,
    ! [Xs: list @ a] :
      ~ ( lexordp @ a @ less @ Xs @ ( nil @ a ) ) ).

% local.lexordp_simps(2)
thf(fact_82_local_Olexordp__simps_I1_J,axiom,
    ! [Ys: list @ a] :
      ( ( lexordp @ a @ less @ ( nil @ a ) @ Ys )
      = ( Ys
       != ( nil @ a ) ) ) ).

% local.lexordp_simps(1)
thf(fact_83_local_Olexordp__eq__simps_I2_J,axiom,
    ! [Xs: list @ a] :
      ( ( lexordp_eq @ a @ less @ Xs @ ( nil @ a ) )
      = ( Xs
        = ( nil @ a ) ) ) ).

% local.lexordp_eq_simps(2)
thf(fact_84_local_Olexordp__eq__simps_I1_J,axiom,
    ! [Ys: list @ a] : ( lexordp_eq @ a @ less @ ( nil @ a ) @ Ys ) ).

% local.lexordp_eq_simps(1)
thf(fact_85_local_Olexordp__eq__simps_I3_J,axiom,
    ! [X: a,Xs: list @ a] :
      ~ ( lexordp_eq @ a @ less @ ( cons @ a @ X @ Xs ) @ ( nil @ a ) ) ).

% local.lexordp_eq_simps(3)
thf(fact_86_local_Orbt__insert__with__key__def,axiom,
    ! [B: $tType,F: a > B > B > B,K: a,V: B,T: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im627674146th_key @ a @ B @ less @ F @ K @ V @ T )
      = ( rBT_Im945281971_paint @ a @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ T ) ) ) ).

% local.rbt_insert_with_key_def
thf(fact_87_ord_Orbt__del_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,X: A] :
      ( ( rBT_Im1714610413bt_del @ A @ B @ Less @ X @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% ord.rbt_del.simps(1)
thf(fact_88_ord_Oins__inv1__inv2_I3_J,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B,Less: A > A > $o,F: A > B > B > B,K: A,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ A @ B @ T )
       => ( ( ( rBT_Im1805589839lor_of @ A @ B @ T )
            = rBT_Impl_Mirabelle_B )
         => ( rBT_Im1040612427e_inv1 @ A @ B @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ X @ T ) ) ) ) ) ).

% ord.ins_inv1_inv2(3)
thf(fact_89_ord__class_Orbt__del_Ocases,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [X: product_prod @ A @ ( rBT_Im246033960le_rbt @ A @ B )] :
          ( ! [X7: A] :
              ( X
             != ( product_Pair @ A @ ( rBT_Im246033960le_rbt @ A @ B ) @ X7 @ ( rBT_Im418718756_Empty @ A @ B ) ) )
         => ~ ! [X7: A,C3: rBT_Im1923302023_color,A4: rBT_Im246033960le_rbt @ A @ B,Y2: A,S: B,B3: rBT_Im246033960le_rbt @ A @ B] :
                ( X
               != ( product_Pair @ A @ ( rBT_Im246033960le_rbt @ A @ B ) @ X7 @ ( rBT_Im480247531Branch @ A @ B @ C3 @ A4 @ Y2 @ S @ B3 ) ) ) ) ) ).

% ord_class.rbt_del.cases
thf(fact_90_ord_Orbt__del_Ocases,axiom,
    ! [B: $tType,A: $tType,X: product_prod @ A @ ( rBT_Im246033960le_rbt @ A @ B )] :
      ( ! [X7: A] :
          ( X
         != ( product_Pair @ A @ ( rBT_Im246033960le_rbt @ A @ B ) @ X7 @ ( rBT_Im418718756_Empty @ A @ B ) ) )
     => ~ ! [X7: A,C3: rBT_Im1923302023_color,A4: rBT_Im246033960le_rbt @ A @ B,Y2: A,S: B,B3: rBT_Im246033960le_rbt @ A @ B] :
            ( X
           != ( product_Pair @ A @ ( rBT_Im246033960le_rbt @ A @ B ) @ X7 @ ( rBT_Im480247531Branch @ A @ B @ C3 @ A4 @ Y2 @ S @ B3 ) ) ) ) ).

% ord.rbt_del.cases
thf(fact_91_color__of_Osimps_I1_J,axiom,
    ! [A: $tType,B: $tType] :
      ( ( rBT_Im1805589839lor_of @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) )
      = rBT_Impl_Mirabelle_B ) ).

% color_of.simps(1)
thf(fact_92_inv1_Osimps_I2_J,axiom,
    ! [A: $tType,B: $tType,C: rBT_Im1923302023_color,Lt: rBT_Im246033960le_rbt @ A @ B,K: A,V: B,Rt: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ C @ Lt @ K @ V @ Rt ) )
      = ( ( rBT_Im1040612427e_inv1 @ A @ B @ Lt )
        & ( rBT_Im1040612427e_inv1 @ A @ B @ Rt )
        & ( ( C = rBT_Impl_Mirabelle_B )
          | ( ( ( rBT_Im1805589839lor_of @ A @ B @ Lt )
              = rBT_Impl_Mirabelle_B )
            & ( ( rBT_Im1805589839lor_of @ A @ B @ Rt )
              = rBT_Impl_Mirabelle_B ) ) ) ) ) ).

% inv1.simps(2)
thf(fact_93_ord_Oins__inv1__inv2_I1_J,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B,Less: A > A > $o,F: A > B > B > B,K: A,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ A @ B @ T )
       => ( rBT_Im1040612428e_inv2 @ A @ B @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ X @ T ) ) ) ) ).

% ord.ins_inv1_inv2(1)
thf(fact_94_ord_Oins__inv1__inv2_I2_J,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B,Less: A > A > $o,F: A > B > B > B,K: A,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ A @ B @ T )
       => ( ( rBT_Im315265182height @ A @ B @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ X @ T ) )
          = ( rBT_Im315265182height @ A @ B @ T ) ) ) ) ).

% ord.ins_inv1_inv2(2)
thf(fact_95_local_Oins__inv1__inv2_I4_J,axiom,
    ! [B: $tType,T: rBT_Im246033960le_rbt @ a @ B,F: a > B > B > B,K: a,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ a @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ a @ B @ T )
       => ( rBT_Im1071879905_inv1l @ a @ B @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ X @ T ) ) ) ) ).

% local.ins_inv1_inv2(4)
thf(fact_96_ord_Olexordp__eq__simps_I3_J,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Xs: list @ A] :
      ~ ( lexordp_eq @ A @ Less @ ( cons @ A @ X @ Xs ) @ ( nil @ A ) ) ).

% ord.lexordp_eq_simps(3)
thf(fact_97_ord_Orbt__delete__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( rBT_Im452238249delete @ A @ B )
      = ( ^ [Less2: A > A > $o,K2: A,T2: rBT_Im246033960le_rbt @ A @ B] : ( rBT_Im945281971_paint @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im1714610413bt_del @ A @ B @ Less2 @ K2 @ T2 ) ) ) ) ).

% ord.rbt_delete_def
thf(fact_98_ord_Olexordp__eq__simps_I1_J,axiom,
    ! [A: $tType,Less: A > A > $o,Ys: list @ A] : ( lexordp_eq @ A @ Less @ ( nil @ A ) @ Ys ) ).

% ord.lexordp_eq_simps(1)
thf(fact_99_ord_Olexordp__eq__simps_I2_J,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: list @ A] :
      ( ( lexordp_eq @ A @ Less @ Xs @ ( nil @ A ) )
      = ( Xs
        = ( nil @ A ) ) ) ).

% ord.lexordp_eq_simps(2)
thf(fact_100_ord_Olexordp__eq__simps_I4_J,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Xs: list @ A,Y: A,Ys: list @ A] :
      ( ( lexordp_eq @ A @ Less @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys ) )
      = ( ( Less @ X @ Y )
        | ( ~ ( Less @ Y @ X )
          & ( lexordp_eq @ A @ Less @ Xs @ Ys ) ) ) ) ).

% ord.lexordp_eq_simps(4)
thf(fact_101_ord_Olexordp__simps_I1_J,axiom,
    ! [A: $tType,Less: A > A > $o,Ys: list @ A] :
      ( ( lexordp @ A @ Less @ ( nil @ A ) @ Ys )
      = ( Ys
       != ( nil @ A ) ) ) ).

% ord.lexordp_simps(1)
thf(fact_102_list_Oinject,axiom,
    ! [A: $tType,X21: A,X22: list @ A,Y21: A,Y22: list @ A] :
      ( ( ( cons @ A @ X21 @ X22 )
        = ( cons @ A @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% list.inject
thf(fact_103_ord_Olexordp__simps_I3_J,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Xs: list @ A,Y: A,Ys: list @ A] :
      ( ( lexordp @ A @ Less @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys ) )
      = ( ( Less @ X @ Y )
        | ( ~ ( Less @ Y @ X )
          & ( lexordp @ A @ Less @ Xs @ Ys ) ) ) ) ).

% ord.lexordp_simps(3)
thf(fact_104_ord_Olexordp__simps_I2_J,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: list @ A] :
      ~ ( lexordp @ A @ Less @ Xs @ ( nil @ A ) ) ).

% ord.lexordp_simps(2)
thf(fact_105_inv1l_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType] : ( rBT_Im1071879905_inv1l @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) ) ).

% inv1l.simps(1)
thf(fact_106_paint__inv1l,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B,C: rBT_Im1923302023_color] :
      ( ( rBT_Im1071879905_inv1l @ A @ B @ T )
     => ( rBT_Im1071879905_inv1l @ A @ B @ ( rBT_Im945281971_paint @ A @ B @ C @ T ) ) ) ).

% paint_inv1l
thf(fact_107_inv1l_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,C: rBT_Im1923302023_color,L: rBT_Im246033960le_rbt @ A @ B,K: A,V: B,R: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1071879905_inv1l @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ C @ L @ K @ V @ R ) )
      = ( ( rBT_Im1040612427e_inv1 @ A @ B @ L )
        & ( rBT_Im1040612427e_inv1 @ A @ B @ R ) ) ) ).

% inv1l.simps(2)
thf(fact_108_not__Cons__self2,axiom,
    ! [A: $tType,X: A,Xs: list @ A] :
      ( ( cons @ A @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_109_ord_Olexordp__irreflexive,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: list @ A] :
      ( ! [X7: A] :
          ~ ( Less @ X7 @ X7 )
     => ~ ( lexordp @ A @ Less @ Xs @ Xs ) ) ).

% ord.lexordp_irreflexive
thf(fact_110_ord_Olexordp__eq__refl,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: list @ A] : ( lexordp_eq @ A @ Less @ Xs @ Xs ) ).

% ord.lexordp_eq_refl
thf(fact_111_paint__inv1,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1071879905_inv1l @ A @ B @ T )
     => ( rBT_Im1040612427e_inv1 @ A @ B @ ( rBT_Im945281971_paint @ A @ B @ rBT_Impl_Mirabelle_B @ T ) ) ) ).

% paint_inv1
thf(fact_112_ord_Oins__inv1__inv2_I4_J,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B,Less: A > A > $o,F: A > B > B > B,K: A,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ T )
     => ( ( rBT_Im1040612428e_inv2 @ A @ B @ T )
       => ( rBT_Im1071879905_inv1l @ A @ B @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ X @ T ) ) ) ) ).

% ord.ins_inv1_inv2(4)
thf(fact_113_list_Odistinct_I1_J,axiom,
    ! [A: $tType,X21: A,X22: list @ A] :
      ( ( nil @ A )
     != ( cons @ A @ X21 @ X22 ) ) ).

% list.distinct(1)
thf(fact_114_list_OdiscI,axiom,
    ! [A: $tType,List: list @ A,X21: A,X22: list @ A] :
      ( ( List
        = ( cons @ A @ X21 @ X22 ) )
     => ( List
       != ( nil @ A ) ) ) ).

% list.discI
thf(fact_115_list_Oexhaust,axiom,
    ! [A: $tType,Y: list @ A] :
      ( ( Y
       != ( nil @ A ) )
     => ~ ! [X212: A,X222: list @ A] :
            ( Y
           != ( cons @ A @ X212 @ X222 ) ) ) ).

% list.exhaust
thf(fact_116_list_Oinducts,axiom,
    ! [A: $tType,P: ( list @ A ) > $o,List: list @ A] :
      ( ( P @ ( nil @ A ) )
     => ( ! [X1: A,X2: list @ A] :
            ( ( P @ X2 )
           => ( P @ ( cons @ A @ X1 @ X2 ) ) )
       => ( P @ List ) ) ) ).

% list.inducts
thf(fact_117_neq__Nil__conv,axiom,
    ! [A: $tType,Xs: list @ A] :
      ( ( Xs
       != ( nil @ A ) )
      = ( ? [Y3: A,Ys3: list @ A] :
            ( Xs
            = ( cons @ A @ Y3 @ Ys3 ) ) ) ) ).

% neq_Nil_conv
thf(fact_118_list__induct2_H,axiom,
    ! [A: $tType,B: $tType,P: ( list @ A ) > ( list @ B ) > $o,Xs: list @ A,Ys: list @ B] :
      ( ( P @ ( nil @ A ) @ ( nil @ B ) )
     => ( ! [X7: A,Xs2: list @ A] : ( P @ ( cons @ A @ X7 @ Xs2 ) @ ( nil @ B ) )
       => ( ! [Y2: B,Ys2: list @ B] : ( P @ ( nil @ A ) @ ( cons @ B @ Y2 @ Ys2 ) )
         => ( ! [X7: A,Xs2: list @ A,Y2: B,Ys2: list @ B] :
                ( ( P @ Xs2 @ Ys2 )
               => ( P @ ( cons @ A @ X7 @ Xs2 ) @ ( cons @ B @ Y2 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_119_splice_Oinduct,axiom,
    ! [A: $tType,P: ( list @ A ) > ( list @ A ) > $o,A0: list @ A,A1: list @ A] :
      ( ! [X1: list @ A] : ( P @ ( nil @ A ) @ X1 )
     => ( ! [V2: A,Va: list @ A] : ( P @ ( cons @ A @ V2 @ Va ) @ ( nil @ A ) )
       => ( ! [X7: A,Xs2: list @ A,Y2: A,Ys2: list @ A] :
              ( ( P @ Xs2 @ Ys2 )
             => ( P @ ( cons @ A @ X7 @ Xs2 ) @ ( cons @ A @ Y2 @ Ys2 ) ) )
         => ( P @ A0 @ A1 ) ) ) ) ).

% splice.induct
thf(fact_120_transpose_Ocases,axiom,
    ! [A: $tType,X: list @ ( list @ A )] :
      ( ( X
       != ( nil @ ( list @ A ) ) )
     => ( ! [Xss: list @ ( list @ A )] :
            ( X
           != ( cons @ ( list @ A ) @ ( nil @ A ) @ Xss ) )
       => ~ ! [X7: A,Xs2: list @ A,Xss: list @ ( list @ A )] :
              ( X
             != ( cons @ ( list @ A ) @ ( cons @ A @ X7 @ Xs2 ) @ Xss ) ) ) ) ).

% transpose.cases
thf(fact_121_remdups__adj_Ocases,axiom,
    ! [A: $tType,X: list @ A] :
      ( ( X
       != ( nil @ A ) )
     => ( ! [X7: A] :
            ( X
           != ( cons @ A @ X7 @ ( nil @ A ) ) )
       => ~ ! [X7: A,Y2: A,Xs2: list @ A] :
              ( X
             != ( cons @ A @ X7 @ ( cons @ A @ Y2 @ Xs2 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_122_remdups__adj_Oinduct,axiom,
    ! [A: $tType,P: ( list @ A ) > $o,A0: list @ A] :
      ( ( P @ ( nil @ A ) )
     => ( ! [X7: A] : ( P @ ( cons @ A @ X7 @ ( nil @ A ) ) )
       => ( ! [X7: A,Y2: A,Xs2: list @ A] :
              ( ( ( X7 = Y2 )
               => ( P @ ( cons @ A @ X7 @ Xs2 ) ) )
             => ( ( ( X7 != Y2 )
                 => ( P @ ( cons @ A @ Y2 @ Xs2 ) ) )
               => ( P @ ( cons @ A @ X7 @ ( cons @ A @ Y2 @ Xs2 ) ) ) ) )
         => ( P @ A0 ) ) ) ) ).

% remdups_adj.induct
thf(fact_123_list__nonempty__induct,axiom,
    ! [A: $tType,Xs: list @ A,P: ( list @ A ) > $o] :
      ( ( Xs
       != ( nil @ A ) )
     => ( ! [X7: A] : ( P @ ( cons @ A @ X7 @ ( nil @ A ) ) )
       => ( ! [X7: A,Xs2: list @ A] :
              ( ( Xs2
               != ( nil @ A ) )
             => ( ( P @ Xs2 )
               => ( P @ ( cons @ A @ X7 @ Xs2 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% list_nonempty_induct
thf(fact_124_map__tailrec__rev_Oinduct,axiom,
    ! [A: $tType,B: $tType,P: ( A > B ) > ( list @ A ) > ( list @ B ) > $o,A0: A > B,A1: list @ A,A22: list @ B] :
      ( ! [F2: A > B,X1: list @ B] : ( P @ F2 @ ( nil @ A ) @ X1 )
     => ( ! [F2: A > B,A4: A,As: list @ A,Bs: list @ B] :
            ( ( P @ F2 @ As @ ( cons @ B @ ( F2 @ A4 ) @ Bs ) )
           => ( P @ F2 @ ( cons @ A @ A4 @ As ) @ Bs ) )
       => ( P @ A0 @ A1 @ A22 ) ) ) ).

% map_tailrec_rev.induct
thf(fact_125_ord_Olexordp_OCons,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Y: A,Xs: list @ A,Ys: list @ A] :
      ( ( Less @ X @ Y )
     => ( lexordp @ A @ Less @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys ) ) ) ).

% ord.lexordp.Cons
thf(fact_126_ord_Olexordp_OCons__eq,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Y: A,Xs: list @ A,Ys: list @ A] :
      ( ~ ( Less @ X @ Y )
     => ( ~ ( Less @ Y @ X )
       => ( ( lexordp @ A @ Less @ Xs @ Ys )
         => ( lexordp @ A @ Less @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys ) ) ) ) ) ).

% ord.lexordp.Cons_eq
thf(fact_127_ord_Olexordp__eq_OCons,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Y: A,Xs: list @ A,Ys: list @ A] :
      ( ( Less @ X @ Y )
     => ( lexordp_eq @ A @ Less @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys ) ) ) ).

% ord.lexordp_eq.Cons
thf(fact_128_ord_Olexordp__eq_OCons__eq,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Y: A,Xs: list @ A,Ys: list @ A] :
      ( ~ ( Less @ X @ Y )
     => ( ~ ( Less @ Y @ X )
       => ( ( lexordp_eq @ A @ Less @ Xs @ Ys )
         => ( lexordp_eq @ A @ Less @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys ) ) ) ) ) ).

% ord.lexordp_eq.Cons_eq
thf(fact_129_ord_Olexordp__eq_ONil,axiom,
    ! [A: $tType,Less: A > A > $o,Ys: list @ A] : ( lexordp_eq @ A @ Less @ ( nil @ A ) @ Ys ) ).

% ord.lexordp_eq.Nil
thf(fact_130_ord_Olexordp__into__lexordp__eq,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: list @ A,Ys: list @ A] :
      ( ( lexordp @ A @ Less @ Xs @ Ys )
     => ( lexordp_eq @ A @ Less @ Xs @ Ys ) ) ).

% ord.lexordp_into_lexordp_eq
thf(fact_131_ord_Orbt__insert__with__key__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( rBT_Im627674146th_key @ A @ B )
      = ( ^ [Less2: A > A > $o,F3: A > B > B > B,K2: A,V3: B,T2: rBT_Im246033960le_rbt @ A @ B] : ( rBT_Im945281971_paint @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im1756508336bt_ins @ A @ B @ Less2 @ F3 @ K2 @ V3 @ T2 ) ) ) ) ).

% ord.rbt_insert_with_key_def
thf(fact_132_ord_Olexordp_ONil,axiom,
    ! [A: $tType,Less: A > A > $o,Y: A,Ys: list @ A] : ( lexordp @ A @ Less @ ( nil @ A ) @ ( cons @ A @ Y @ Ys ) ) ).

% ord.lexordp.Nil
thf(fact_133_ord_Olexordp_Ocases,axiom,
    ! [A: $tType,Less: A > A > $o,A1: list @ A,A22: list @ A] :
      ( ( lexordp @ A @ Less @ A1 @ A22 )
     => ( ( ( A1
            = ( nil @ A ) )
         => ! [Y2: A,Ys2: list @ A] :
              ( A22
             != ( cons @ A @ Y2 @ Ys2 ) ) )
       => ( ! [X7: A] :
              ( ? [Xs2: list @ A] :
                  ( A1
                  = ( cons @ A @ X7 @ Xs2 ) )
             => ! [Y2: A] :
                  ( ? [Ys2: list @ A] :
                      ( A22
                      = ( cons @ A @ Y2 @ Ys2 ) )
                 => ~ ( Less @ X7 @ Y2 ) ) )
         => ~ ! [X7: A,Y2: A,Xs2: list @ A] :
                ( ( A1
                  = ( cons @ A @ X7 @ Xs2 ) )
               => ! [Ys2: list @ A] :
                    ( ( A22
                      = ( cons @ A @ Y2 @ Ys2 ) )
                   => ( ~ ( Less @ X7 @ Y2 )
                     => ( ~ ( Less @ Y2 @ X7 )
                       => ~ ( lexordp @ A @ Less @ Xs2 @ Ys2 ) ) ) ) ) ) ) ) ).

% ord.lexordp.cases
thf(fact_134_ord_Olexordp_Osimps,axiom,
    ! [A: $tType] :
      ( ( lexordp @ A )
      = ( ^ [Less2: A > A > $o,A12: list @ A,A23: list @ A] :
            ( ? [Y3: A,Ys3: list @ A] :
                ( ( A12
                  = ( nil @ A ) )
                & ( A23
                  = ( cons @ A @ Y3 @ Ys3 ) ) )
            | ? [X6: A,Y3: A,Xs3: list @ A,Ys3: list @ A] :
                ( ( A12
                  = ( cons @ A @ X6 @ Xs3 ) )
                & ( A23
                  = ( cons @ A @ Y3 @ Ys3 ) )
                & ( Less2 @ X6 @ Y3 ) )
            | ? [X6: A,Y3: A,Xs3: list @ A,Ys3: list @ A] :
                ( ( A12
                  = ( cons @ A @ X6 @ Xs3 ) )
                & ( A23
                  = ( cons @ A @ Y3 @ Ys3 ) )
                & ~ ( Less2 @ X6 @ Y3 )
                & ~ ( Less2 @ Y3 @ X6 )
                & ( lexordp @ A @ Less2 @ Xs3 @ Ys3 ) ) ) ) ) ).

% ord.lexordp.simps
thf(fact_135_ord_Olexordp_Oinducts,axiom,
    ! [A: $tType,Less: A > A > $o,X12: list @ A,X26: list @ A,P: ( list @ A ) > ( list @ A ) > $o] :
      ( ( lexordp @ A @ Less @ X12 @ X26 )
     => ( ! [Y2: A,Ys2: list @ A] : ( P @ ( nil @ A ) @ ( cons @ A @ Y2 @ Ys2 ) )
       => ( ! [X7: A,Y2: A,Xs2: list @ A,Ys2: list @ A] :
              ( ( Less @ X7 @ Y2 )
             => ( P @ ( cons @ A @ X7 @ Xs2 ) @ ( cons @ A @ Y2 @ Ys2 ) ) )
         => ( ! [X7: A,Y2: A,Xs2: list @ A,Ys2: list @ A] :
                ( ~ ( Less @ X7 @ Y2 )
               => ( ~ ( Less @ Y2 @ X7 )
                 => ( ( lexordp @ A @ Less @ Xs2 @ Ys2 )
                   => ( ( P @ Xs2 @ Ys2 )
                     => ( P @ ( cons @ A @ X7 @ Xs2 ) @ ( cons @ A @ Y2 @ Ys2 ) ) ) ) ) )
           => ( P @ X12 @ X26 ) ) ) ) ) ).

% ord.lexordp.inducts
thf(fact_136_ord_Olexordp__eq_Oinducts,axiom,
    ! [A: $tType,Less: A > A > $o,X12: list @ A,X26: list @ A,P: ( list @ A ) > ( list @ A ) > $o] :
      ( ( lexordp_eq @ A @ Less @ X12 @ X26 )
     => ( ! [X1: list @ A] : ( P @ ( nil @ A ) @ X1 )
       => ( ! [X7: A,Y2: A,Xs2: list @ A,Ys2: list @ A] :
              ( ( Less @ X7 @ Y2 )
             => ( P @ ( cons @ A @ X7 @ Xs2 ) @ ( cons @ A @ Y2 @ Ys2 ) ) )
         => ( ! [X7: A,Y2: A,Xs2: list @ A,Ys2: list @ A] :
                ( ~ ( Less @ X7 @ Y2 )
               => ( ~ ( Less @ Y2 @ X7 )
                 => ( ( lexordp_eq @ A @ Less @ Xs2 @ Ys2 )
                   => ( ( P @ Xs2 @ Ys2 )
                     => ( P @ ( cons @ A @ X7 @ Xs2 ) @ ( cons @ A @ Y2 @ Ys2 ) ) ) ) ) )
           => ( P @ X12 @ X26 ) ) ) ) ) ).

% ord.lexordp_eq.inducts
thf(fact_137_ord_Olexordp__eq_Osimps,axiom,
    ! [A: $tType] :
      ( ( lexordp_eq @ A )
      = ( ^ [Less2: A > A > $o,A12: list @ A,A23: list @ A] :
            ( ? [Ys3: list @ A] :
                ( ( A12
                  = ( nil @ A ) )
                & ( A23 = Ys3 ) )
            | ? [X6: A,Y3: A,Xs3: list @ A,Ys3: list @ A] :
                ( ( A12
                  = ( cons @ A @ X6 @ Xs3 ) )
                & ( A23
                  = ( cons @ A @ Y3 @ Ys3 ) )
                & ( Less2 @ X6 @ Y3 ) )
            | ? [X6: A,Y3: A,Xs3: list @ A,Ys3: list @ A] :
                ( ( A12
                  = ( cons @ A @ X6 @ Xs3 ) )
                & ( A23
                  = ( cons @ A @ Y3 @ Ys3 ) )
                & ~ ( Less2 @ X6 @ Y3 )
                & ~ ( Less2 @ Y3 @ X6 )
                & ( lexordp_eq @ A @ Less2 @ Xs3 @ Ys3 ) ) ) ) ) ).

% ord.lexordp_eq.simps
thf(fact_138_ord_Olexordp__eq_Ocases,axiom,
    ! [A: $tType,Less: A > A > $o,A1: list @ A,A22: list @ A] :
      ( ( lexordp_eq @ A @ Less @ A1 @ A22 )
     => ( ( ( A1
            = ( nil @ A ) )
         => ! [Ys2: list @ A] : A22 != Ys2 )
       => ( ! [X7: A] :
              ( ? [Xs2: list @ A] :
                  ( A1
                  = ( cons @ A @ X7 @ Xs2 ) )
             => ! [Y2: A] :
                  ( ? [Ys2: list @ A] :
                      ( A22
                      = ( cons @ A @ Y2 @ Ys2 ) )
                 => ~ ( Less @ X7 @ Y2 ) ) )
         => ~ ! [X7: A,Y2: A,Xs2: list @ A] :
                ( ( A1
                  = ( cons @ A @ X7 @ Xs2 ) )
               => ! [Ys2: list @ A] :
                    ( ( A22
                      = ( cons @ A @ Y2 @ Ys2 ) )
                   => ( ~ ( Less @ X7 @ Y2 )
                     => ( ~ ( Less @ Y2 @ X7 )
                       => ~ ( lexordp_eq @ A @ Less @ Xs2 @ Ys2 ) ) ) ) ) ) ) ) ).

% ord.lexordp_eq.cases
thf(fact_139_local_Orbt__ins_Osimps_I1_J,axiom,
    ! [B: $tType,F: a > B > B > B,K: a,V: B] :
      ( ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ ( rBT_Im418718756_Empty @ a @ B ) )
      = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im418718756_Empty @ a @ B ) @ K @ V @ ( rBT_Im418718756_Empty @ a @ B ) ) ) ).

% local.rbt_ins.simps(1)
thf(fact_140_local_Orbt__ins_Osimps_I2_J,axiom,
    ! [B: $tType,K: a,X: a,F: a > B > B > B,V: B,L: rBT_Im246033960le_rbt @ a @ B,Y: B,R: rBT_Im246033960le_rbt @ a @ B] :
      ( ( ( less @ K @ X )
       => ( ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_B @ L @ X @ Y @ R ) )
          = ( rBT_Im1648453169alance @ a @ B @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ L ) @ X @ Y @ R ) ) )
      & ( ~ ( less @ K @ X )
       => ( ( ( less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_B @ L @ X @ Y @ R ) )
              = ( rBT_Im1648453169alance @ a @ B @ L @ X @ Y @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ R ) ) ) )
          & ( ~ ( less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_B @ L @ X @ Y @ R ) )
              = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_B @ L @ X @ ( F @ K @ Y @ V ) @ R ) ) ) ) ) ) ).

% local.rbt_ins.simps(2)
thf(fact_141_local_Orbt__ins_Oinduct,axiom,
    ! [B: $tType,P: ( a > B > B > B ) > a > B > ( rBT_Im246033960le_rbt @ a @ B ) > $o,A0: a > B > B > B,A1: a,A22: B,A32: rBT_Im246033960le_rbt @ a @ B] :
      ( ! [F2: a > B > B > B,K3: a,V2: B] : ( P @ F2 @ K3 @ V2 @ ( rBT_Im418718756_Empty @ a @ B ) )
     => ( ! [F2: a > B > B > B,K3: a,V2: B,L2: rBT_Im246033960le_rbt @ a @ B,X7: a,Y2: B,R2: rBT_Im246033960le_rbt @ a @ B] :
            ( ( ( less @ K3 @ X7 )
             => ( P @ F2 @ K3 @ V2 @ L2 ) )
           => ( ( ~ ( less @ K3 @ X7 )
               => ( ( less @ X7 @ K3 )
                 => ( P @ F2 @ K3 @ V2 @ R2 ) ) )
             => ( P @ F2 @ K3 @ V2 @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_B @ L2 @ X7 @ Y2 @ R2 ) ) ) )
       => ( ! [F2: a > B > B > B,K3: a,V2: B,L2: rBT_Im246033960le_rbt @ a @ B,X7: a,Y2: B,R2: rBT_Im246033960le_rbt @ a @ B] :
              ( ( ( less @ K3 @ X7 )
               => ( P @ F2 @ K3 @ V2 @ L2 ) )
             => ( ( ~ ( less @ K3 @ X7 )
                 => ( ( less @ X7 @ K3 )
                   => ( P @ F2 @ K3 @ V2 @ R2 ) ) )
               => ( P @ F2 @ K3 @ V2 @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ L2 @ X7 @ Y2 @ R2 ) ) ) )
         => ( P @ A0 @ A1 @ A22 @ A32 ) ) ) ) ).

% local.rbt_ins.induct
thf(fact_142_local_Orbt__ins_Osimps_I3_J,axiom,
    ! [B: $tType,K: a,X: a,F: a > B > B > B,V: B,L: rBT_Im246033960le_rbt @ a @ B,Y: B,R: rBT_Im246033960le_rbt @ a @ B] :
      ( ( ( less @ K @ X )
       => ( ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ R ) )
          = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ L ) @ X @ Y @ R ) ) )
      & ( ~ ( less @ K @ X )
       => ( ( ( less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ R ) )
              = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ R ) ) ) )
          & ( ~ ( less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ a @ B @ less @ F @ K @ V @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ R ) )
              = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ L @ X @ ( F @ K @ Y @ V ) @ R ) ) ) ) ) ) ).

% local.rbt_ins.simps(3)
thf(fact_143_local_Olexordp__append__rightI,axiom,
    ! [Ys: list @ a,Xs: list @ a] :
      ( ( Ys
       != ( nil @ a ) )
     => ( lexordp @ a @ less @ Xs @ ( append @ a @ Xs @ Ys ) ) ) ).

% local.lexordp_append_rightI
thf(fact_144_local_Olexordp__append__leftD,axiom,
    ! [Xs: list @ a,Us: list @ a,Vs: list @ a] :
      ( ( lexordp @ a @ less @ ( append @ a @ Xs @ Us ) @ ( append @ a @ Xs @ Vs ) )
     => ( ! [A4: a] :
            ~ ( less @ A4 @ A4 )
       => ( lexordp @ a @ less @ Us @ Vs ) ) ) ).

% local.lexordp_append_leftD
thf(fact_145_local_Olexordp__append__leftI,axiom,
    ! [Us: list @ a,Vs: list @ a,Xs: list @ a] :
      ( ( lexordp @ a @ less @ Us @ Vs )
     => ( lexordp @ a @ less @ ( append @ a @ Xs @ Us ) @ ( append @ a @ Xs @ Vs ) ) ) ).

% local.lexordp_append_leftI
thf(fact_146_append__assoc,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A,Zs: list @ A] :
      ( ( append @ A @ ( append @ A @ Xs @ Ys ) @ Zs )
      = ( append @ A @ Xs @ ( append @ A @ Ys @ Zs ) ) ) ).

% append_assoc
thf(fact_147_append__same__eq,axiom,
    ! [A: $tType,Ys: list @ A,Xs: list @ A,Zs: list @ A] :
      ( ( ( append @ A @ Ys @ Xs )
        = ( append @ A @ Zs @ Xs ) )
      = ( Ys = Zs ) ) ).

% append_same_eq
thf(fact_148_same__append__eq,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A,Zs: list @ A] :
      ( ( ( append @ A @ Xs @ Ys )
        = ( append @ A @ Xs @ Zs ) )
      = ( Ys = Zs ) ) ).

% same_append_eq
thf(fact_149_local_Olexordp__append__left__rightI,axiom,
    ! [X: a,Y: a,Us: list @ a,Xs: list @ a,Ys: list @ a] :
      ( ( less @ X @ Y )
     => ( lexordp @ a @ less @ ( append @ a @ Us @ ( cons @ a @ X @ Xs ) ) @ ( append @ a @ Us @ ( cons @ a @ Y @ Ys ) ) ) ) ).

% local.lexordp_append_left_rightI
thf(fact_150_append__Nil2,axiom,
    ! [A: $tType,Xs: list @ A] :
      ( ( append @ A @ Xs @ ( nil @ A ) )
      = Xs ) ).

% append_Nil2
thf(fact_151_append__self__conv,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A] :
      ( ( ( append @ A @ Xs @ Ys )
        = Xs )
      = ( Ys
        = ( nil @ A ) ) ) ).

% append_self_conv
thf(fact_152_self__append__conv,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A] :
      ( ( Xs
        = ( append @ A @ Xs @ Ys ) )
      = ( Ys
        = ( nil @ A ) ) ) ).

% self_append_conv
thf(fact_153_append__self__conv2,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A] :
      ( ( ( append @ A @ Xs @ Ys )
        = Ys )
      = ( Xs
        = ( nil @ A ) ) ) ).

% append_self_conv2
thf(fact_154_self__append__conv2,axiom,
    ! [A: $tType,Ys: list @ A,Xs: list @ A] :
      ( ( Ys
        = ( append @ A @ Xs @ Ys ) )
      = ( Xs
        = ( nil @ A ) ) ) ).

% self_append_conv2
thf(fact_155_Nil__is__append__conv,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A] :
      ( ( ( nil @ A )
        = ( append @ A @ Xs @ Ys ) )
      = ( ( Xs
          = ( nil @ A ) )
        & ( Ys
          = ( nil @ A ) ) ) ) ).

% Nil_is_append_conv
thf(fact_156_append__is__Nil__conv,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A] :
      ( ( ( append @ A @ Xs @ Ys )
        = ( nil @ A ) )
      = ( ( Xs
          = ( nil @ A ) )
        & ( Ys
          = ( nil @ A ) ) ) ) ).

% append_is_Nil_conv
thf(fact_157_append1__eq__conv,axiom,
    ! [A: $tType,Xs: list @ A,X: A,Ys: list @ A,Y: A] :
      ( ( ( append @ A @ Xs @ ( cons @ A @ X @ ( nil @ A ) ) )
        = ( append @ A @ Ys @ ( cons @ A @ Y @ ( nil @ A ) ) ) )
      = ( ( Xs = Ys )
        & ( X = Y ) ) ) ).

% append1_eq_conv
thf(fact_158_local_Obalance__rbt__greater,axiom,
    ! [B: $tType,V: a,A2: rBT_Im246033960le_rbt @ a @ B,K: a,X: B,B2: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1259024060reater @ a @ B @ less @ V @ ( rBT_Im1648453169alance @ a @ B @ A2 @ K @ X @ B2 ) )
      = ( ( rBT_Im1259024060reater @ a @ B @ less @ V @ A2 )
        & ( rBT_Im1259024060reater @ a @ B @ less @ V @ B2 )
        & ( less @ V @ K ) ) ) ).

% local.balance_rbt_greater
thf(fact_159_local_Obalance__rbt__less,axiom,
    ! [B: $tType,V: a,A2: rBT_Im246033960le_rbt @ a @ B,K: a,X: B,B2: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im2075124343t_less @ a @ B @ less @ V @ ( rBT_Im1648453169alance @ a @ B @ A2 @ K @ X @ B2 ) )
      = ( ( rBT_Im2075124343t_less @ a @ B @ less @ V @ A2 )
        & ( rBT_Im2075124343t_less @ a @ B @ less @ V @ B2 )
        & ( less @ K @ V ) ) ) ).

% local.balance_rbt_less
thf(fact_160_local_Orbt__del__from__left_Osimps_I3_J,axiom,
    ! [B: $tType,X: a,Va2: rBT_Im246033960le_rbt @ a @ B,Vb: a,Vc: B,Vd: rBT_Im246033960le_rbt @ a @ B,Y: a,S2: B,B2: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1152561598m_left @ a @ B @ less @ X @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) @ Y @ S2 @ B2 )
      = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) ) @ Y @ S2 @ B2 ) ) ).

% local.rbt_del_from_left.simps(3)
thf(fact_161_local_Orbt__del__from__right_Osimps_I3_J,axiom,
    ! [B: $tType,X: a,A2: rBT_Im246033960le_rbt @ a @ B,Y: a,S2: B,Va2: rBT_Im246033960le_rbt @ a @ B,Vb: a,Vc: B,Vd: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1808746437_right @ a @ B @ less @ X @ A2 @ Y @ S2 @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ A2 @ Y @ S2 @ ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) ) ) ) ).

% local.rbt_del_from_right.simps(3)
thf(fact_162_local_Orbt__del__from__right_Osimps_I2_J,axiom,
    ! [B: $tType,X: a,A2: rBT_Im246033960le_rbt @ a @ B,Y: a,S2: B] :
      ( ( rBT_Im1808746437_right @ a @ B @ less @ X @ A2 @ Y @ S2 @ ( rBT_Im418718756_Empty @ a @ B ) )
      = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ A2 @ Y @ S2 @ ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im418718756_Empty @ a @ B ) ) ) ) ).

% local.rbt_del_from_right.simps(2)
thf(fact_163_local_Orbt__del__from__left_Osimps_I2_J,axiom,
    ! [B: $tType,X: a,Y: a,S2: B,B2: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1152561598m_left @ a @ B @ less @ X @ ( rBT_Im418718756_Empty @ a @ B ) @ Y @ S2 @ B2 )
      = ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im418718756_Empty @ a @ B ) ) @ Y @ S2 @ B2 ) ) ).

% local.rbt_del_from_left.simps(2)
thf(fact_164_append__Cons,axiom,
    ! [A: $tType,X: A,Xs: list @ A,Ys: list @ A] :
      ( ( append @ A @ ( cons @ A @ X @ Xs ) @ Ys )
      = ( cons @ A @ X @ ( append @ A @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_165_append__Nil,axiom,
    ! [A: $tType,Ys: list @ A] :
      ( ( append @ A @ ( nil @ A ) @ Ys )
      = Ys ) ).

% append_Nil
thf(fact_166_Cons__eq__appendI,axiom,
    ! [A: $tType,X: A,Xs1: list @ A,Ys: list @ A,Xs: list @ A,Zs: list @ A] :
      ( ( ( cons @ A @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append @ A @ Xs1 @ Zs ) )
       => ( ( cons @ A @ X @ Xs )
          = ( append @ A @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_167_eq__Nil__appendI,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A] :
      ( ( Xs = Ys )
     => ( Xs
        = ( append @ A @ ( nil @ A ) @ Ys ) ) ) ).

% eq_Nil_appendI
thf(fact_168_append__eq__appendI,axiom,
    ! [A: $tType,Xs: list @ A,Xs1: list @ A,Zs: list @ A,Ys: list @ A,Us: list @ A] :
      ( ( ( append @ A @ Xs @ Xs1 )
        = Zs )
     => ( ( Ys
          = ( append @ A @ Xs1 @ Us ) )
       => ( ( append @ A @ Xs @ Ys )
          = ( append @ A @ Zs @ Us ) ) ) ) ).

% append_eq_appendI
thf(fact_169_append__eq__append__conv2,axiom,
    ! [A: $tType,Xs: list @ A,Ys: list @ A,Zs: list @ A,Ts: list @ A] :
      ( ( ( append @ A @ Xs @ Ys )
        = ( append @ A @ Zs @ Ts ) )
      = ( ? [Us2: list @ A] :
            ( ( ( Xs
                = ( append @ A @ Zs @ Us2 ) )
              & ( ( append @ A @ Us2 @ Ys )
                = Ts ) )
            | ( ( ( append @ A @ Xs @ Us2 )
                = Zs )
              & ( Ys
                = ( append @ A @ Us2 @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_170_balance_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,D: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ C @ Y @ Z @ D ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ A2 @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ D ) ) ) ).

% balance.simps(1)
thf(fact_171_balance_Osimps_I3_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ W @ X @ B2 ) @ S2 @ T @ C ) @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ A2 @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ) ).

% balance.simps(3)
thf(fact_172_balance_Osimps_I7_J,axiom,
    ! [B: $tType,A: $tType,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) ) @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ) ).

% balance.simps(7)
thf(fact_173_balance_Osimps_I9_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,D: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ C @ Y @ Z @ D ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ D ) ) ) ).

% balance.simps(9)
thf(fact_174_balance_Osimps_I13_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) ) ) ) ).

% balance.simps(13)
thf(fact_175_color_Odistinct_I1_J,axiom,
    rBT_Impl_Mirabelle_R != rBT_Impl_Mirabelle_B ).

% color.distinct(1)
thf(fact_176_color_Oinduct,axiom,
    ! [P: rBT_Im1923302023_color > $o,Color: rBT_Im1923302023_color] :
      ( ( P @ rBT_Impl_Mirabelle_R )
     => ( ( P @ rBT_Impl_Mirabelle_B )
       => ( P @ Color ) ) ) ).

% color.induct
thf(fact_177_color_Oexhaust,axiom,
    ! [Y: rBT_Im1923302023_color] :
      ( ( Y != rBT_Impl_Mirabelle_R )
     => ( Y = rBT_Impl_Mirabelle_B ) ) ).

% color.exhaust
thf(fact_178_ord_Olexordp__append__leftD,axiom,
    ! [A: $tType,Less: A > A > $o,Xs: list @ A,Us: list @ A,Vs: list @ A] :
      ( ( lexordp @ A @ Less @ ( append @ A @ Xs @ Us ) @ ( append @ A @ Xs @ Vs ) )
     => ( ! [A4: A] :
            ~ ( Less @ A4 @ A4 )
       => ( lexordp @ A @ Less @ Us @ Vs ) ) ) ).

% ord.lexordp_append_leftD
thf(fact_179_ord_Olexordp__append__leftI,axiom,
    ! [A: $tType,Less: A > A > $o,Us: list @ A,Vs: list @ A,Xs: list @ A] :
      ( ( lexordp @ A @ Less @ Us @ Vs )
     => ( lexordp @ A @ Less @ ( append @ A @ Xs @ Us ) @ ( append @ A @ Xs @ Vs ) ) ) ).

% ord.lexordp_append_leftI
thf(fact_180_ord_Obalance__rbt__greater,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,V: A,A2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1259024060reater @ A @ B @ Less @ V @ ( rBT_Im1648453169alance @ A @ B @ A2 @ K @ X @ B2 ) )
      = ( ( rBT_Im1259024060reater @ A @ B @ Less @ V @ A2 )
        & ( rBT_Im1259024060reater @ A @ B @ Less @ V @ B2 )
        & ( Less @ V @ K ) ) ) ).

% ord.balance_rbt_greater
thf(fact_181_ord_Obalance__rbt__less,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,V: A,A2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im2075124343t_less @ A @ B @ Less @ V @ ( rBT_Im1648453169alance @ A @ B @ A2 @ K @ X @ B2 ) )
      = ( ( rBT_Im2075124343t_less @ A @ B @ Less @ V @ A2 )
        & ( rBT_Im2075124343t_less @ A @ B @ Less @ V @ B2 )
        & ( Less @ K @ V ) ) ) ).

% ord.balance_rbt_less
thf(fact_182_balance_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ W @ X @ B2 ) @ S2 @ T @ C ) @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ A2 @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(2)
thf(fact_183_balance_Osimps_I4_J,axiom,
    ! [B: $tType,A: $tType,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) ) @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(4)
thf(fact_184_balance_Osimps_I5_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) ) @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(5)
thf(fact_185_balance_Osimps_I6_J,axiom,
    ! [B: $tType,A: $tType,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) ) @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ) ).

% balance.simps(6)
thf(fact_186_balance_Osimps_I8_J,axiom,
    ! [B: $tType,A: $tType,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,D: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ C @ Y @ Z @ D ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ D ) ) ) ).

% balance.simps(8)
thf(fact_187_balance_Osimps_I10_J,axiom,
    ! [B: $tType,A: $tType,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(10)
thf(fact_188_balance_Osimps_I11_J,axiom,
    ! [B: $tType,A: $tType,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ) ).

% balance.simps(11)
thf(fact_189_balance_Osimps_I12_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,W: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,C: rBT_Im246033960le_rbt @ A @ B,Y: A,Z: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ T @ C ) @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ W @ X @ B2 ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ Y @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(12)
thf(fact_190_rev__nonempty__induct,axiom,
    ! [A: $tType,Xs: list @ A,P: ( list @ A ) > $o] :
      ( ( Xs
       != ( nil @ A ) )
     => ( ! [X7: A] : ( P @ ( cons @ A @ X7 @ ( nil @ A ) ) )
       => ( ! [X7: A,Xs2: list @ A] :
              ( ( Xs2
               != ( nil @ A ) )
             => ( ( P @ Xs2 )
               => ( P @ ( append @ A @ Xs2 @ ( cons @ A @ X7 @ ( nil @ A ) ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% rev_nonempty_induct
thf(fact_191_append__eq__Cons__conv,axiom,
    ! [A: $tType,Ys: list @ A,Zs: list @ A,X: A,Xs: list @ A] :
      ( ( ( append @ A @ Ys @ Zs )
        = ( cons @ A @ X @ Xs ) )
      = ( ( ( Ys
            = ( nil @ A ) )
          & ( Zs
            = ( cons @ A @ X @ Xs ) ) )
        | ? [Ys4: list @ A] :
            ( ( Ys
              = ( cons @ A @ X @ Ys4 ) )
            & ( ( append @ A @ Ys4 @ Zs )
              = Xs ) ) ) ) ).

% append_eq_Cons_conv
thf(fact_192_Cons__eq__append__conv,axiom,
    ! [A: $tType,X: A,Xs: list @ A,Ys: list @ A,Zs: list @ A] :
      ( ( ( cons @ A @ X @ Xs )
        = ( append @ A @ Ys @ Zs ) )
      = ( ( ( Ys
            = ( nil @ A ) )
          & ( ( cons @ A @ X @ Xs )
            = Zs ) )
        | ? [Ys4: list @ A] :
            ( ( ( cons @ A @ X @ Ys4 )
              = Ys )
            & ( Xs
              = ( append @ A @ Ys4 @ Zs ) ) ) ) ) ).

% Cons_eq_append_conv
thf(fact_193_rev__exhaust,axiom,
    ! [A: $tType,Xs: list @ A] :
      ( ( Xs
       != ( nil @ A ) )
     => ~ ! [Ys2: list @ A,Y2: A] :
            ( Xs
           != ( append @ A @ Ys2 @ ( cons @ A @ Y2 @ ( nil @ A ) ) ) ) ) ).

% rev_exhaust
thf(fact_194_rev__induct,axiom,
    ! [A: $tType,P: ( list @ A ) > $o,Xs: list @ A] :
      ( ( P @ ( nil @ A ) )
     => ( ! [X7: A,Xs2: list @ A] :
            ( ( P @ Xs2 )
           => ( P @ ( append @ A @ Xs2 @ ( cons @ A @ X7 @ ( nil @ A ) ) ) ) )
       => ( P @ Xs ) ) ) ).

% rev_induct
thf(fact_195_balance_Osimps_I23_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) ) ) ).

% balance.simps(23)
thf(fact_196_balance_Osimps_I27_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vj: rBT_Im246033960le_rbt @ A @ B,Vk: A,Vl: B,Vm: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) ) ) ) ).

% balance.simps(27)
thf(fact_197_balance_Osimps_I29_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,V: rBT_Im1923302023_color,Vi: rBT_Im246033960le_rbt @ A @ B,Vn: A,Vo: B,Vp: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vj: rBT_Im246033960le_rbt @ A @ B,Vk: A,Vl: B,Vm: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vn @ Vo @ Vp ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vn @ Vo @ Vp ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) ) ) ) ).

% balance.simps(29)
thf(fact_198_balance_Osimps_I39_J,axiom,
    ! [B: $tType,A: $tType,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(39)
thf(fact_199_balance_Osimps_I43_J,axiom,
    ! [B: $tType,A: $tType,Vj: rBT_Im246033960le_rbt @ A @ B,Vk: A,Vl: B,Vm: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) @ Vf @ Vg @ Vh ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) @ Vf @ Vg @ Vh ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(43)
thf(fact_200_balance_Osimps_I45_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vj: rBT_Im246033960le_rbt @ A @ B,Vk: A,Vl: B,Vm: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vi: rBT_Im246033960le_rbt @ A @ B,Vn: A,Vo: B,Vp: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vn @ Vo @ Vp ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vn @ Vo @ Vp ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(45)
thf(fact_201_ord_Olexordp__append__left__rightI,axiom,
    ! [A: $tType,Less: A > A > $o,X: A,Y: A,Us: list @ A,Xs: list @ A,Ys: list @ A] :
      ( ( Less @ X @ Y )
     => ( lexordp @ A @ Less @ ( append @ A @ Us @ ( cons @ A @ X @ Xs ) ) @ ( append @ A @ Us @ ( cons @ A @ Y @ Ys ) ) ) ) ).

% ord.lexordp_append_left_rightI
thf(fact_202_ord_Olexordp__append__rightI,axiom,
    ! [A: $tType,Ys: list @ A,Less: A > A > $o,Xs: list @ A] :
      ( ( Ys
       != ( nil @ A ) )
     => ( lexordp @ A @ Less @ Xs @ ( append @ A @ Xs @ Ys ) ) ) ).

% ord.lexordp_append_rightI
thf(fact_203_ord_Orbt__ins_Osimps_I3_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,X: A,F: A > B > B > B,V: B,L: rBT_Im246033960le_rbt @ A @ B,Y: B,R: rBT_Im246033960le_rbt @ A @ B] :
      ( ( ( Less @ K @ X )
       => ( ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ R ) )
          = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ L ) @ X @ Y @ R ) ) )
      & ( ~ ( Less @ K @ X )
       => ( ( ( Less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ R ) )
              = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ R ) ) ) )
          & ( ~ ( Less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ L @ X @ Y @ R ) )
              = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ L @ X @ ( F @ K @ Y @ V ) @ R ) ) ) ) ) ) ).

% ord.rbt_ins.simps(3)
thf(fact_204_balance__inv2,axiom,
    ! [B: $tType,A: $tType,L: rBT_Im246033960le_rbt @ A @ B,R: rBT_Im246033960le_rbt @ A @ B,K: A,V: B] :
      ( ( rBT_Im1040612428e_inv2 @ A @ B @ L )
     => ( ( rBT_Im1040612428e_inv2 @ A @ B @ R )
       => ( ( ( rBT_Im315265182height @ A @ B @ L )
            = ( rBT_Im315265182height @ A @ B @ R ) )
         => ( rBT_Im1040612428e_inv2 @ A @ B @ ( rBT_Im1648453169alance @ A @ B @ L @ K @ V @ R ) ) ) ) ) ).

% balance_inv2
thf(fact_205_balance__inv1,axiom,
    ! [B: $tType,A: $tType,L: rBT_Im246033960le_rbt @ A @ B,R: rBT_Im246033960le_rbt @ A @ B,K: A,V: B] :
      ( ( rBT_Im1071879905_inv1l @ A @ B @ L )
     => ( ( rBT_Im1071879905_inv1l @ A @ B @ R )
       => ( rBT_Im1040612427e_inv1 @ A @ B @ ( rBT_Im1648453169alance @ A @ B @ L @ K @ V @ R ) ) ) ) ).

% balance_inv1
thf(fact_206_ord_Orbt__ins_Oinduct,axiom,
    ! [B: $tType,A: $tType,P: ( A > B > B > B ) > A > B > ( rBT_Im246033960le_rbt @ A @ B ) > $o,Less: A > A > $o,A0: A > B > B > B,A1: A,A22: B,A32: rBT_Im246033960le_rbt @ A @ B] :
      ( ! [F2: A > B > B > B,K3: A,V2: B] : ( P @ F2 @ K3 @ V2 @ ( rBT_Im418718756_Empty @ A @ B ) )
     => ( ! [F2: A > B > B > B,K3: A,V2: B,L2: rBT_Im246033960le_rbt @ A @ B,X7: A,Y2: B,R2: rBT_Im246033960le_rbt @ A @ B] :
            ( ( ( Less @ K3 @ X7 )
             => ( P @ F2 @ K3 @ V2 @ L2 ) )
           => ( ( ~ ( Less @ K3 @ X7 )
               => ( ( Less @ X7 @ K3 )
                 => ( P @ F2 @ K3 @ V2 @ R2 ) ) )
             => ( P @ F2 @ K3 @ V2 @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ L2 @ X7 @ Y2 @ R2 ) ) ) )
       => ( ! [F2: A > B > B > B,K3: A,V2: B,L2: rBT_Im246033960le_rbt @ A @ B,X7: A,Y2: B,R2: rBT_Im246033960le_rbt @ A @ B] :
              ( ( ( Less @ K3 @ X7 )
               => ( P @ F2 @ K3 @ V2 @ L2 ) )
             => ( ( ~ ( Less @ K3 @ X7 )
                 => ( ( Less @ X7 @ K3 )
                   => ( P @ F2 @ K3 @ V2 @ R2 ) ) )
               => ( P @ F2 @ K3 @ V2 @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ L2 @ X7 @ Y2 @ R2 ) ) ) )
         => ( P @ A0 @ A1 @ A22 @ A32 ) ) ) ) ).

% ord.rbt_ins.induct
thf(fact_207_combine_Oinduct,axiom,
    ! [B: $tType,A: $tType,P: ( rBT_Im246033960le_rbt @ A @ B ) > ( rBT_Im246033960le_rbt @ A @ B ) > $o,A0: rBT_Im246033960le_rbt @ A @ B,A1: rBT_Im246033960le_rbt @ A @ B] :
      ( ! [X1: rBT_Im246033960le_rbt @ A @ B] : ( P @ ( rBT_Im418718756_Empty @ A @ B ) @ X1 )
     => ( ! [V2: rBT_Im1923302023_color,Va: rBT_Im246033960le_rbt @ A @ B,Vb2: A,Vc2: B,Vd2: rBT_Im246033960le_rbt @ A @ B] : ( P @ ( rBT_Im480247531Branch @ A @ B @ V2 @ Va @ Vb2 @ Vc2 @ Vd2 ) @ ( rBT_Im418718756_Empty @ A @ B ) )
       => ( ! [A4: rBT_Im246033960le_rbt @ A @ B,K3: A,X7: B,B3: rBT_Im246033960le_rbt @ A @ B,C3: rBT_Im246033960le_rbt @ A @ B,S: A,Y2: B,D2: rBT_Im246033960le_rbt @ A @ B] :
              ( ( P @ B3 @ C3 )
             => ( P @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A4 @ K3 @ X7 @ B3 ) @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ C3 @ S @ Y2 @ D2 ) ) )
         => ( ! [A4: rBT_Im246033960le_rbt @ A @ B,K3: A,X7: B,B3: rBT_Im246033960le_rbt @ A @ B,C3: rBT_Im246033960le_rbt @ A @ B,S: A,Y2: B,D2: rBT_Im246033960le_rbt @ A @ B] :
                ( ( P @ B3 @ C3 )
               => ( P @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ A4 @ K3 @ X7 @ B3 ) @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C3 @ S @ Y2 @ D2 ) ) )
           => ( ! [Va: rBT_Im246033960le_rbt @ A @ B,Vb2: A,Vc2: B,Vd2: rBT_Im246033960le_rbt @ A @ B,B3: rBT_Im246033960le_rbt @ A @ B,K3: A,X7: B,C3: rBT_Im246033960le_rbt @ A @ B] :
                  ( ( P @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va @ Vb2 @ Vc2 @ Vd2 ) @ B3 )
                 => ( P @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va @ Vb2 @ Vc2 @ Vd2 ) @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B3 @ K3 @ X7 @ C3 ) ) )
             => ( ! [A4: rBT_Im246033960le_rbt @ A @ B,K3: A,X7: B,B3: rBT_Im246033960le_rbt @ A @ B,Va: rBT_Im246033960le_rbt @ A @ B,Vb2: A,Vc2: B,Vd2: rBT_Im246033960le_rbt @ A @ B] :
                    ( ( P @ B3 @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va @ Vb2 @ Vc2 @ Vd2 ) )
                   => ( P @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A4 @ K3 @ X7 @ B3 ) @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va @ Vb2 @ Vc2 @ Vd2 ) ) )
               => ( P @ A0 @ A1 ) ) ) ) ) ) ) ).

% combine.induct
thf(fact_208_rbt__cases,axiom,
    ! [B: $tType,A: $tType,T: rBT_Im246033960le_rbt @ A @ B] :
      ( ( T
       != ( rBT_Im418718756_Empty @ A @ B ) )
     => ( ! [L2: rBT_Im246033960le_rbt @ A @ B,K3: A,V2: B,R2: rBT_Im246033960le_rbt @ A @ B] :
            ( T
           != ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ L2 @ K3 @ V2 @ R2 ) )
       => ~ ! [L2: rBT_Im246033960le_rbt @ A @ B,K3: A,V2: B,R2: rBT_Im246033960le_rbt @ A @ B] :
              ( T
             != ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ L2 @ K3 @ V2 @ R2 ) ) ) ) ).

% rbt_cases
thf(fact_209_balance_Osimps_I14_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(14)
thf(fact_210_balance_Osimps_I15_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(15)
thf(fact_211_balance_Osimps_I16_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(16)
thf(fact_212_balance_Osimps_I17_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B,V: rBT_Im1923302023_color,Vb: A,Vc: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(17)
thf(fact_213_balance_Osimps_I18_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B,V: rBT_Im1923302023_color,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(18)
thf(fact_214_balance_Osimps_I19_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vf: rBT_Im246033960le_rbt @ A @ B,Vg: A,Vh: B,Vi: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) ) ) ) ).

% balance.simps(19)
thf(fact_215_balance_Osimps_I20_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B,V: rBT_Im1923302023_color,Vb: A,Vc: B,Vf: rBT_Im246033960le_rbt @ A @ B,Vg: A,Vh: B,Vi: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) ) ) ) ).

% balance.simps(20)
thf(fact_216_balance_Osimps_I21_J,axiom,
    ! [B: $tType,A: $tType,S2: A,T: B,V: rBT_Im1923302023_color,Ve: rBT_Im246033960le_rbt @ A @ B,Vj: A,Vk: B,Vl: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vf: rBT_Im246033960le_rbt @ A @ B,Vg: A,Vh: B,Vi: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vj @ Vk @ Vl ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vj @ Vk @ Vl ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) ) ) ) ).

% balance.simps(21)
thf(fact_217_balance_Osimps_I22_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(22)
thf(fact_218_balance_Osimps_I24_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(24)
thf(fact_219_balance_Osimps_I25_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,V: rBT_Im1923302023_color,Vf: A,Vg: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(25)
thf(fact_220_balance_Osimps_I26_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,V: rBT_Im1923302023_color,Vi: rBT_Im246033960le_rbt @ A @ B,Vj: A,Vk: B,Vl: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vj @ Vk @ Vl ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vj @ Vk @ Vl ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance.simps(26)
thf(fact_221_balance_Osimps_I28_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,V: rBT_Im1923302023_color,Vf: A,Vg: B,Vj: rBT_Im246033960le_rbt @ A @ B,Vk: A,Vl: B,Vm: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) ) ) ) ).

% balance.simps(28)
thf(fact_222_balance_Osimps_I32_J,axiom,
    ! [B: $tType,A: $tType,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(32)
thf(fact_223_balance_Osimps_I33_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vb: A,Vc: B,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(33)
thf(fact_224_balance_Osimps_I34_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vb: A,Vc: B,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vf @ Vg @ Vh ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(34)
thf(fact_225_balance_Osimps_I35_J,axiom,
    ! [B: $tType,A: $tType,Vf: rBT_Im246033960le_rbt @ A @ B,Vg: A,Vh: B,Vi: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) @ Vb @ Vc @ Vd ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(35)
thf(fact_226_balance_Osimps_I36_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vf: rBT_Im246033960le_rbt @ A @ B,Vg: A,Vh: B,Vi: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(36)
thf(fact_227_balance_Osimps_I37_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vf: rBT_Im246033960le_rbt @ A @ B,Vg: A,Vh: B,Vi: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Ve: rBT_Im246033960le_rbt @ A @ B,Vj: A,Vk: B,Vl: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vj @ Vk @ Vl ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vf @ Vg @ Vh @ Vi ) @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Ve @ Vj @ Vk @ Vl ) ) @ S2 @ T @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance.simps(37)
thf(fact_228_balance_Osimps_I40_J,axiom,
    ! [B: $tType,A: $tType,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ Vh ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ Vh ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(40)
thf(fact_229_balance_Osimps_I41_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vf: A,Vg: B,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(41)
thf(fact_230_balance_Osimps_I42_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vf: A,Vg: B,Vi: rBT_Im246033960le_rbt @ A @ B,Vj: A,Vk: B,Vl: rBT_Im246033960le_rbt @ A @ B,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vj @ Vk @ Vl ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im418718756_Empty @ A @ B ) @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vi @ Vj @ Vk @ Vl ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(42)
thf(fact_231_balance_Osimps_I44_J,axiom,
    ! [B: $tType,A: $tType,V: rBT_Im1923302023_color,Vj: rBT_Im246033960le_rbt @ A @ B,Vk: A,Vl: B,Vm: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,S2: A,T: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ ( rBT_Im480247531Branch @ A @ B @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Vj @ Vk @ Vl @ Vm ) @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) @ S2 @ T @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance.simps(44)
thf(fact_232_ord_Orbt__ins_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,F: A > B > B > B,K: A,V: B] :
      ( ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im418718756_Empty @ A @ B ) @ K @ V @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% ord.rbt_ins.simps(1)
thf(fact_233_ord_Orbt__ins_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,K: A,X: A,F: A > B > B > B,V: B,L: rBT_Im246033960le_rbt @ A @ B,Y: B,R: rBT_Im246033960le_rbt @ A @ B] :
      ( ( ( Less @ K @ X )
       => ( ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ L @ X @ Y @ R ) )
          = ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ L ) @ X @ Y @ R ) ) )
      & ( ~ ( Less @ K @ X )
       => ( ( ( Less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ L @ X @ Y @ R ) )
              = ( rBT_Im1648453169alance @ A @ B @ L @ X @ Y @ ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ R ) ) ) )
          & ( ~ ( Less @ X @ K )
           => ( ( rBT_Im1756508336bt_ins @ A @ B @ Less @ F @ K @ V @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ L @ X @ Y @ R ) )
              = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ L @ X @ ( F @ K @ Y @ V ) @ R ) ) ) ) ) ) ).

% ord.rbt_ins.simps(2)
thf(fact_234_ord_Orbt__del__from__right_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,X: A,A2: rBT_Im246033960le_rbt @ A @ B,Y: A,S2: B] :
      ( ( rBT_Im1808746437_right @ A @ B @ Less @ X @ A2 @ Y @ S2 @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ Y @ S2 @ ( rBT_Im1714610413bt_del @ A @ B @ Less @ X @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% ord.rbt_del_from_right.simps(2)
thf(fact_235_ord_Orbt__del__from__left_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,X: A,Y: A,S2: B,B2: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1152561598m_left @ A @ B @ Less @ X @ ( rBT_Im418718756_Empty @ A @ B ) @ Y @ S2 @ B2 )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1714610413bt_del @ A @ B @ Less @ X @ ( rBT_Im418718756_Empty @ A @ B ) ) @ Y @ S2 @ B2 ) ) ).

% ord.rbt_del_from_left.simps(2)
thf(fact_236_balance__right_Osimps_I4_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,Y: B,C: rBT_Im246033960le_rbt @ A @ B,T: A,Z: B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ K @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ B2 @ S2 @ Y @ C ) ) @ T @ Z @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im945281971_paint @ A @ B @ rBT_Impl_Mirabelle_R @ A2 ) @ K @ X @ B2 ) @ S2 @ Y @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ T @ Z @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ) ).

% balance_right.simps(4)
thf(fact_237_local_Orbt__del__from__right_Osimps_I1_J,axiom,
    ! [B: $tType,X: a,A2: rBT_Im246033960le_rbt @ a @ B,Y: a,S2: B,Lt: rBT_Im246033960le_rbt @ a @ B,Z: a,V: B,Rt: rBT_Im246033960le_rbt @ a @ B] :
      ( ( rBT_Im1808746437_right @ a @ B @ less @ X @ A2 @ Y @ S2 @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_B @ Lt @ Z @ V @ Rt ) )
      = ( rBT_Im1053358987_right @ a @ B @ A2 @ Y @ S2 @ ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im480247531Branch @ a @ B @ rBT_Impl_Mirabelle_B @ Lt @ Z @ V @ Rt ) ) ) ) ).

% local.rbt_del_from_right.simps(1)
thf(fact_238_balance__right_Osimps_I6_J,axiom,
    ! [B: $tType,A: $tType,K: A,X: B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ K @ X @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% balance_right.simps(6)
thf(fact_239_ord_Orbt__del__from__right_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,X: A,A2: rBT_Im246033960le_rbt @ A @ B,Y: A,S2: B,Lt: rBT_Im246033960le_rbt @ A @ B,Z: A,V: B,Rt: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1808746437_right @ A @ B @ Less @ X @ A2 @ Y @ S2 @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Lt @ Z @ V @ Rt ) )
      = ( rBT_Im1053358987_right @ A @ B @ A2 @ Y @ S2 @ ( rBT_Im1714610413bt_del @ A @ B @ Less @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Lt @ Z @ V @ Rt ) ) ) ) ).

% ord.rbt_del_from_right.simps(1)
thf(fact_240_balance__right__inv1l,axiom,
    ! [B: $tType,A: $tType,Lt: rBT_Im246033960le_rbt @ A @ B,Rt: rBT_Im246033960le_rbt @ A @ B,K: A,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ Lt )
     => ( ( rBT_Im1071879905_inv1l @ A @ B @ Rt )
       => ( rBT_Im1071879905_inv1l @ A @ B @ ( rBT_Im1053358987_right @ A @ B @ Lt @ K @ X @ Rt ) ) ) ) ).

% balance_right_inv1l
thf(fact_241_balance__right_Osimps_I9_J,axiom,
    ! [B: $tType,A: $tType,K: A,X: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im418718756_Empty @ A @ B ) @ K @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% balance_right.simps(9)
thf(fact_242_balance__right_Osimps_I1_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,Y: B,C: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1053358987_right @ A @ B @ A2 @ K @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ B2 @ S2 @ Y @ C ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ K @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ B2 @ S2 @ Y @ C ) ) ) ).

% balance_right.simps(1)
thf(fact_243_balance__right_Osimps_I7_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,K: A,X: B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ ( rBT_Im418718756_Empty @ A @ B ) ) @ K @ X @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% balance_right.simps(7)
thf(fact_244_balance__right_Osimps_I8_J,axiom,
    ! [B: $tType,A: $tType,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vh: rBT_Im246033960le_rbt @ A @ B,K: A,X: B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Ve @ Vf @ Vg @ Vh ) ) @ K @ X @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% balance_right.simps(8)
thf(fact_245_balance__right_Osimps_I11_J,axiom,
    ! [B: $tType,A: $tType,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,Vi: rBT_Im246033960le_rbt @ A @ B,Vj: A,Vk: B,Vl: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Ve @ Vf @ Vg @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Vi @ Vj @ Vk @ Vl ) ) @ K @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% balance_right.simps(11)
thf(fact_246_balance__right_Osimps_I10_J,axiom,
    ! [B: $tType,A: $tType,Ve: rBT_Im246033960le_rbt @ A @ B,Vf: A,Vg: B,K: A,X: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Ve @ Vf @ Vg @ ( rBT_Im418718756_Empty @ A @ B ) ) @ K @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im418718756_Empty @ A @ B ) ) ).

% balance_right.simps(10)
thf(fact_247_balance__right_Osimps_I3_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,Y: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ A2 @ K @ X @ B2 ) @ S2 @ Y @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ K @ X @ B2 ) @ S2 @ Y @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ).

% balance_right.simps(3)
thf(fact_248_balance__right__inv1,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,B2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B] :
      ( ( rBT_Im1040612427e_inv1 @ A @ B @ A2 )
     => ( ( rBT_Im1071879905_inv1l @ A @ B @ B2 )
       => ( ( ( rBT_Im1805589839lor_of @ A @ B @ A2 )
            = rBT_Impl_Mirabelle_B )
         => ( rBT_Im1040612427e_inv1 @ A @ B @ ( rBT_Im1053358987_right @ A @ B @ A2 @ K @ X @ B2 ) ) ) ) ) ).

% balance_right_inv1
thf(fact_249_balance__right_Osimps_I2_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,Y: B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ A2 @ K @ X @ B2 ) @ S2 @ Y @ ( rBT_Im418718756_Empty @ A @ B ) )
      = ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ K @ X @ B2 ) @ S2 @ Y @ ( rBT_Im418718756_Empty @ A @ B ) ) ) ).

% balance_right.simps(2)
thf(fact_250_balance__right_Osimps_I5_J,axiom,
    ! [B: $tType,A: $tType,A2: rBT_Im246033960le_rbt @ A @ B,K: A,X: B,B2: rBT_Im246033960le_rbt @ A @ B,S2: A,Y: B,C: rBT_Im246033960le_rbt @ A @ B,T: A,Z: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1053358987_right @ A @ B @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ K @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ B2 @ S2 @ Y @ C ) ) @ T @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1648453169alance @ A @ B @ ( rBT_Im945281971_paint @ A @ B @ rBT_Impl_Mirabelle_R @ A2 ) @ K @ X @ B2 ) @ S2 @ Y @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ C @ T @ Z @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_B @ Va2 @ Vb @ Vc @ Vd ) ) ) ) ).

% balance_right.simps(5)
thf(fact_251_ord_Orbt__del__from__left_Osimps_I3_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,X: A,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B,Y: A,S2: B,B2: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1152561598m_left @ A @ B @ Less @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) @ Y @ S2 @ B2 )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ ( rBT_Im1714610413bt_del @ A @ B @ Less @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) ) @ Y @ S2 @ B2 ) ) ).

% ord.rbt_del_from_left.simps(3)
thf(fact_252_ord_Orbt__del__from__right_Osimps_I3_J,axiom,
    ! [B: $tType,A: $tType,Less: A > A > $o,X: A,A2: rBT_Im246033960le_rbt @ A @ B,Y: A,S2: B,Va2: rBT_Im246033960le_rbt @ A @ B,Vb: A,Vc: B,Vd: rBT_Im246033960le_rbt @ A @ B] :
      ( ( rBT_Im1808746437_right @ A @ B @ Less @ X @ A2 @ Y @ S2 @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) )
      = ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ A2 @ Y @ S2 @ ( rBT_Im1714610413bt_del @ A @ B @ Less @ X @ ( rBT_Im480247531Branch @ A @ B @ rBT_Impl_Mirabelle_R @ Va2 @ Vb @ Vc @ Vd ) ) ) ) ).

% ord.rbt_del_from_right.simps(3)
thf(fact_253_local_Orbt__del_Oelims,axiom,
    ! [B: $tType,X: a,Xa: rBT_Im246033960le_rbt @ a @ B,Y: rBT_Im246033960le_rbt @ a @ B] :
      ( ( ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ Xa )
        = Y )
     => ( ( ( Xa
            = ( rBT_Im418718756_Empty @ a @ B ) )
         => ( Y
           != ( rBT_Im418718756_Empty @ a @ B ) ) )
       => ~ ! [C3: rBT_Im1923302023_color,A4: rBT_Im246033960le_rbt @ a @ B,Y2: a,S: B,B3: rBT_Im246033960le_rbt @ a @ B] :
              ( ( Xa
                = ( rBT_Im480247531Branch @ a @ B @ C3 @ A4 @ Y2 @ S @ B3 ) )
             => ~ ( ( ( less @ X @ Y2 )
                   => ( Y
                      = ( rBT_Im1152561598m_left @ a @ B @ less @ X @ A4 @ Y2 @ S @ B3 ) ) )
                  & ( ~ ( less @ X @ Y2 )
                   => ( ( ( less @ Y2 @ X )
                       => ( Y
                          = ( rBT_Im1808746437_right @ a @ B @ less @ X @ A4 @ Y2 @ S @ B3 ) ) )
                      & ( ~ ( less @ Y2 @ X )
                       => ( Y
                          = ( rBT_Im1591839508ombine @ a @ B @ A4 @ B3 ) ) ) ) ) ) ) ) ) ).

% local.rbt_del.elims
thf(fact_254_local_Orbt__del_Osimps_I2_J,axiom,
    ! [B: $tType,X: a,Y: a,C: rBT_Im1923302023_color,A2: rBT_Im246033960le_rbt @ a @ B,S2: B,B2: rBT_Im246033960le_rbt @ a @ B] :
      ( ( ( less @ X @ Y )
       => ( ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im480247531Branch @ a @ B @ C @ A2 @ Y @ S2 @ B2 ) )
          = ( rBT_Im1152561598m_left @ a @ B @ less @ X @ A2 @ Y @ S2 @ B2 ) ) )
      & ( ~ ( less @ X @ Y )
       => ( ( ( less @ Y @ X )
           => ( ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im480247531Branch @ a @ B @ C @ A2 @ Y @ S2 @ B2 ) )
              = ( rBT_Im1808746437_right @ a @ B @ less @ X @ A2 @ Y @ S2 @ B2 ) ) )
          & ( ~ ( less @ Y @ X )
           => ( ( rBT_Im1714610413bt_del @ a @ B @ less @ X @ ( rBT_Im480247531Branch @ a @ B @ C @ A2 @ Y @ S2 @ B2 ) )
              = ( rBT_Im1591839508ombine @ a @ B @ A2 @ B2 ) ) ) ) ) ) ).

% local.rbt_del.simps(2)

%----Type constructors (4)
thf(tcon_fun___Orderings_Oord,axiom,
    ! [A5: $tType,A6: $tType] :
      ( ( ord @ A6 @ ( type2 @ A6 ) )
     => ( ord @ ( A5 > A6 ) @ ( type2 @ ( A5 > A6 ) ) ) ) ).

thf(tcon_Nat_Onat___Orderings_Oord_1,axiom,
    ord @ nat @ ( type2 @ nat ) ).

thf(tcon_Set_Oset___Orderings_Oord_2,axiom,
    ! [A5: $tType] : ( ord @ ( set @ A5 ) @ ( type2 @ ( set @ A5 ) ) ) ).

thf(tcon_HOL_Obool___Orderings_Oord_3,axiom,
    ord @ $o @ ( type2 @ $o ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    ( ( rBT_Im759614907sorted @ a @ b @ less @ ( rBT_Im2018130356_entry @ a @ b @ less @ k @ f @ t ) )
    = ( rBT_Im759614907sorted @ a @ b @ less @ t ) ) ).

%------------------------------------------------------------------------------